import { z, JSONSchema, Genkit, ModelReference as ModelReference$1 } from 'genkit';
import { GoogleAuthOptions } from 'google-auth-library';
import { FunctionDeclaration, Content, GenerateContentCandidate, VertexAI } from '@google-cloud/vertexai';
import { ModelReference, ToolDefinitionSchema, MessageData, ModelInfo, CandidateData, GenerateRequest, ModelAction } 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.
 */

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/medlm, for further information.
 */
declare const GeminiConfigSchema: z.ZodObject<z.objectUtil.extendShape<{
    version: z.ZodOptional<z.ZodString>;
    temperature: z.ZodOptional<z.ZodNumber>;
    maxOutputTokens: z.ZodOptional<z.ZodNumber>;
    topK: z.ZodOptional<z.ZodNumber>;
    topP: z.ZodOptional<z.ZodNumber>;
    stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
}, {
    maxOutputTokens: z.ZodOptional<z.ZodNumber>;
    temperature: z.ZodOptional<z.ZodNumber>;
    topK: z.ZodOptional<z.ZodNumber>;
    topP: z.ZodOptional<z.ZodNumber>;
    location: z.ZodOptional<z.ZodString>;
    /**
     * Safety filter settings. See: https://cloud.google.com/vertex-ai/generative-ai/docs/multimodal/configure-safety-filters#configurable-filters
     *
     * E.g.
     *
     * ```js
     * config: {
     *   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',
     *     },
     *   ],
     * }
     * ```
     */
    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">>;
    /**
     * Vertex retrieval options.
     *
     * E.g.
     *
     * ```js
     *   config: {
     *     vertexRetrieval: {
     *       datastore: {
     *         projectId: 'your-cloud-project',
     *         location: 'us-central1',
     *         collection: 'your-collection',
     *       },
     *       disableAttribution: true,
     *     }
     *   }
     * ```
     */
    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;
    }>>;
    /**
     * Google Search retrieval options.
     *
     * ```js
     *   config: {
     *     googleSearchRetrieval: {
     *       disableAttribution: true,
     *     }
     *   }
     * ```
     */
    googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
        disableAttribution: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        disableAttribution?: boolean | undefined;
    }, {
        disableAttribution?: boolean | undefined;
    }>>;
    /**
     * Function calling options.
     *
     * E.g. forced tool call:
     *
     * ```js
     *   config: {
     *     functionCallingConfig: {
     *       mode: 'ANY',
     *     }
     *   }
     * ```
     */
    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;
    }>>;
}>, "passthrough", z.ZodTypeAny, z.objectOutputType<z.objectUtil.extendShape<{
    version: z.ZodOptional<z.ZodString>;
    temperature: z.ZodOptional<z.ZodNumber>;
    maxOutputTokens: z.ZodOptional<z.ZodNumber>;
    topK: z.ZodOptional<z.ZodNumber>;
    topP: z.ZodOptional<z.ZodNumber>;
    stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
}, {
    maxOutputTokens: z.ZodOptional<z.ZodNumber>;
    temperature: z.ZodOptional<z.ZodNumber>;
    topK: z.ZodOptional<z.ZodNumber>;
    topP: z.ZodOptional<z.ZodNumber>;
    location: z.ZodOptional<z.ZodString>;
    /**
     * Safety filter settings. See: https://cloud.google.com/vertex-ai/generative-ai/docs/multimodal/configure-safety-filters#configurable-filters
     *
     * E.g.
     *
     * ```js
     * config: {
     *   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',
     *     },
     *   ],
     * }
     * ```
     */
    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">>;
    /**
     * Vertex retrieval options.
     *
     * E.g.
     *
     * ```js
     *   config: {
     *     vertexRetrieval: {
     *       datastore: {
     *         projectId: 'your-cloud-project',
     *         location: 'us-central1',
     *         collection: 'your-collection',
     *       },
     *       disableAttribution: true,
     *     }
     *   }
     * ```
     */
    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;
    }>>;
    /**
     * Google Search retrieval options.
     *
     * ```js
     *   config: {
     *     googleSearchRetrieval: {
     *       disableAttribution: true,
     *     }
     *   }
     * ```
     */
    googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
        disableAttribution: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        disableAttribution?: boolean | undefined;
    }, {
        disableAttribution?: boolean | undefined;
    }>>;
    /**
     * Function calling options.
     *
     * E.g. forced tool call:
     *
     * ```js
     *   config: {
     *     functionCallingConfig: {
     *       mode: 'ANY',
     *     }
     *   }
     * ```
     */
    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;
    }>>;
}>, z.ZodTypeAny, "passthrough">, z.objectInputType<z.objectUtil.extendShape<{
    version: z.ZodOptional<z.ZodString>;
    temperature: z.ZodOptional<z.ZodNumber>;
    maxOutputTokens: z.ZodOptional<z.ZodNumber>;
    topK: z.ZodOptional<z.ZodNumber>;
    topP: z.ZodOptional<z.ZodNumber>;
    stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
}, {
    maxOutputTokens: z.ZodOptional<z.ZodNumber>;
    temperature: z.ZodOptional<z.ZodNumber>;
    topK: z.ZodOptional<z.ZodNumber>;
    topP: z.ZodOptional<z.ZodNumber>;
    location: z.ZodOptional<z.ZodString>;
    /**
     * Safety filter settings. See: https://cloud.google.com/vertex-ai/generative-ai/docs/multimodal/configure-safety-filters#configurable-filters
     *
     * E.g.
     *
     * ```js
     * config: {
     *   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',
     *     },
     *   ],
     * }
     * ```
     */
    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">>;
    /**
     * Vertex retrieval options.
     *
     * E.g.
     *
     * ```js
     *   config: {
     *     vertexRetrieval: {
     *       datastore: {
     *         projectId: 'your-cloud-project',
     *         location: 'us-central1',
     *         collection: 'your-collection',
     *       },
     *       disableAttribution: true,
     *     }
     *   }
     * ```
     */
    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;
    }>>;
    /**
     * Google Search retrieval options.
     *
     * ```js
     *   config: {
     *     googleSearchRetrieval: {
     *       disableAttribution: true,
     *     }
     *   }
     * ```
     */
    googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
        disableAttribution: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        disableAttribution?: boolean | undefined;
    }, {
        disableAttribution?: boolean | undefined;
    }>>;
    /**
     * Function calling options.
     *
     * E.g. forced tool call:
     *
     * ```js
     *   config: {
     *     functionCallingConfig: {
     *       mode: 'ANY',
     *     }
     *   }
     * ```
     */
    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;
    }>>;
}>, z.ZodTypeAny, "passthrough">>;
/**
 * Known model names, to allow code completion for convenience. Allows other model names.
 */
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')
 * });
 * ```
 */
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',
 *     }
 *   }
 * ```
 */
type GeminiConfig = z.infer<typeof GeminiConfigSchema>;
declare const gemini10Pro: ModelReference<z.ZodObject<z.objectUtil.extendShape<{
    version: z.ZodOptional<z.ZodString>;
    temperature: z.ZodOptional<z.ZodNumber>;
    maxOutputTokens: z.ZodOptional<z.ZodNumber>;
    topK: z.ZodOptional<z.ZodNumber>;
    topP: z.ZodOptional<z.ZodNumber>;
    stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
}, {
    maxOutputTokens: z.ZodOptional<z.ZodNumber>;
    temperature: z.ZodOptional<z.ZodNumber>;
    topK: z.ZodOptional<z.ZodNumber>;
    topP: z.ZodOptional<z.ZodNumber>;
    location: z.ZodOptional<z.ZodString>;
    /**
     * Safety filter settings. See: https://cloud.google.com/vertex-ai/generative-ai/docs/multimodal/configure-safety-filters#configurable-filters
     *
     * E.g.
     *
     * ```js
     * config: {
     *   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',
     *     },
     *   ],
     * }
     * ```
     */
    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">>;
    /**
     * Vertex retrieval options.
     *
     * E.g.
     *
     * ```js
     *   config: {
     *     vertexRetrieval: {
     *       datastore: {
     *         projectId: 'your-cloud-project',
     *         location: 'us-central1',
     *         collection: 'your-collection',
     *       },
     *       disableAttribution: true,
     *     }
     *   }
     * ```
     */
    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;
    }>>;
    /**
     * Google Search retrieval options.
     *
     * ```js
     *   config: {
     *     googleSearchRetrieval: {
     *       disableAttribution: true,
     *     }
     *   }
     * ```
     */
    googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
        disableAttribution: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        disableAttribution?: boolean | undefined;
    }, {
        disableAttribution?: boolean | undefined;
    }>>;
    /**
     * Function calling options.
     *
     * E.g. forced tool call:
     *
     * ```js
     *   config: {
     *     functionCallingConfig: {
     *       mode: 'ANY',
     *     }
     *   }
     * ```
     */
    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;
    }>>;
}>, "passthrough", z.ZodTypeAny, z.objectOutputType<z.objectUtil.extendShape<{
    version: z.ZodOptional<z.ZodString>;
    temperature: z.ZodOptional<z.ZodNumber>;
    maxOutputTokens: z.ZodOptional<z.ZodNumber>;
    topK: z.ZodOptional<z.ZodNumber>;
    topP: z.ZodOptional<z.ZodNumber>;
    stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
}, {
    maxOutputTokens: z.ZodOptional<z.ZodNumber>;
    temperature: z.ZodOptional<z.ZodNumber>;
    topK: z.ZodOptional<z.ZodNumber>;
    topP: z.ZodOptional<z.ZodNumber>;
    location: z.ZodOptional<z.ZodString>;
    /**
     * Safety filter settings. See: https://cloud.google.com/vertex-ai/generative-ai/docs/multimodal/configure-safety-filters#configurable-filters
     *
     * E.g.
     *
     * ```js
     * config: {
     *   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',
     *     },
     *   ],
     * }
     * ```
     */
    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">>;
    /**
     * Vertex retrieval options.
     *
     * E.g.
     *
     * ```js
     *   config: {
     *     vertexRetrieval: {
     *       datastore: {
     *         projectId: 'your-cloud-project',
     *         location: 'us-central1',
     *         collection: 'your-collection',
     *       },
     *       disableAttribution: true,
     *     }
     *   }
     * ```
     */
    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;
    }>>;
    /**
     * Google Search retrieval options.
     *
     * ```js
     *   config: {
     *     googleSearchRetrieval: {
     *       disableAttribution: true,
     *     }
     *   }
     * ```
     */
    googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
        disableAttribution: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        disableAttribution?: boolean | undefined;
    }, {
        disableAttribution?: boolean | undefined;
    }>>;
    /**
     * Function calling options.
     *
     * E.g. forced tool call:
     *
     * ```js
     *   config: {
     *     functionCallingConfig: {
     *       mode: 'ANY',
     *     }
     *   }
     * ```
     */
    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;
    }>>;
}>, z.ZodTypeAny, "passthrough">, z.objectInputType<z.objectUtil.extendShape<{
    version: z.ZodOptional<z.ZodString>;
    temperature: z.ZodOptional<z.ZodNumber>;
    maxOutputTokens: z.ZodOptional<z.ZodNumber>;
    topK: z.ZodOptional<z.ZodNumber>;
    topP: z.ZodOptional<z.ZodNumber>;
    stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
}, {
    maxOutputTokens: z.ZodOptional<z.ZodNumber>;
    temperature: z.ZodOptional<z.ZodNumber>;
    topK: z.ZodOptional<z.ZodNumber>;
    topP: z.ZodOptional<z.ZodNumber>;
    location: z.ZodOptional<z.ZodString>;
    /**
     * Safety filter settings. See: https://cloud.google.com/vertex-ai/generative-ai/docs/multimodal/configure-safety-filters#configurable-filters
     *
     * E.g.
     *
     * ```js
     * config: {
     *   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',
     *     },
     *   ],
     * }
     * ```
     */
    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">>;
    /**
     * Vertex retrieval options.
     *
     * E.g.
     *
     * ```js
     *   config: {
     *     vertexRetrieval: {
     *       datastore: {
     *         projectId: 'your-cloud-project',
     *         location: 'us-central1',
     *         collection: 'your-collection',
     *       },
     *       disableAttribution: true,
     *     }
     *   }
     * ```
     */
    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;
    }>>;
    /**
     * Google Search retrieval options.
     *
     * ```js
     *   config: {
     *     googleSearchRetrieval: {
     *       disableAttribution: true,
     *     }
     *   }
     * ```
     */
    googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
        disableAttribution: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        disableAttribution?: boolean | undefined;
    }, {
        disableAttribution?: boolean | undefined;
    }>>;
    /**
     * Function calling options.
     *
     * E.g. forced tool call:
     *
     * ```js
     *   config: {
     *     functionCallingConfig: {
     *       mode: 'ANY',
     *     }
     *   }
     * ```
     */
    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;
    }>>;
}>, z.ZodTypeAny, "passthrough">>>;
declare const gemini15Pro: ModelReference<z.ZodObject<z.objectUtil.extendShape<{
    version: z.ZodOptional<z.ZodString>;
    temperature: z.ZodOptional<z.ZodNumber>;
    maxOutputTokens: z.ZodOptional<z.ZodNumber>;
    topK: z.ZodOptional<z.ZodNumber>;
    topP: z.ZodOptional<z.ZodNumber>;
    stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
}, {
    maxOutputTokens: z.ZodOptional<z.ZodNumber>;
    temperature: z.ZodOptional<z.ZodNumber>;
    topK: z.ZodOptional<z.ZodNumber>;
    topP: z.ZodOptional<z.ZodNumber>;
    location: z.ZodOptional<z.ZodString>;
    /**
     * Safety filter settings. See: https://cloud.google.com/vertex-ai/generative-ai/docs/multimodal/configure-safety-filters#configurable-filters
     *
     * E.g.
     *
     * ```js
     * config: {
     *   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',
     *     },
     *   ],
     * }
     * ```
     */
    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">>;
    /**
     * Vertex retrieval options.
     *
     * E.g.
     *
     * ```js
     *   config: {
     *     vertexRetrieval: {
     *       datastore: {
     *         projectId: 'your-cloud-project',
     *         location: 'us-central1',
     *         collection: 'your-collection',
     *       },
     *       disableAttribution: true,
     *     }
     *   }
     * ```
     */
    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;
    }>>;
    /**
     * Google Search retrieval options.
     *
     * ```js
     *   config: {
     *     googleSearchRetrieval: {
     *       disableAttribution: true,
     *     }
     *   }
     * ```
     */
    googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
        disableAttribution: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        disableAttribution?: boolean | undefined;
    }, {
        disableAttribution?: boolean | undefined;
    }>>;
    /**
     * Function calling options.
     *
     * E.g. forced tool call:
     *
     * ```js
     *   config: {
     *     functionCallingConfig: {
     *       mode: 'ANY',
     *     }
     *   }
     * ```
     */
    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;
    }>>;
}>, "passthrough", z.ZodTypeAny, z.objectOutputType<z.objectUtil.extendShape<{
    version: z.ZodOptional<z.ZodString>;
    temperature: z.ZodOptional<z.ZodNumber>;
    maxOutputTokens: z.ZodOptional<z.ZodNumber>;
    topK: z.ZodOptional<z.ZodNumber>;
    topP: z.ZodOptional<z.ZodNumber>;
    stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
}, {
    maxOutputTokens: z.ZodOptional<z.ZodNumber>;
    temperature: z.ZodOptional<z.ZodNumber>;
    topK: z.ZodOptional<z.ZodNumber>;
    topP: z.ZodOptional<z.ZodNumber>;
    location: z.ZodOptional<z.ZodString>;
    /**
     * Safety filter settings. See: https://cloud.google.com/vertex-ai/generative-ai/docs/multimodal/configure-safety-filters#configurable-filters
     *
     * E.g.
     *
     * ```js
     * config: {
     *   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',
     *     },
     *   ],
     * }
     * ```
     */
    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">>;
    /**
     * Vertex retrieval options.
     *
     * E.g.
     *
     * ```js
     *   config: {
     *     vertexRetrieval: {
     *       datastore: {
     *         projectId: 'your-cloud-project',
     *         location: 'us-central1',
     *         collection: 'your-collection',
     *       },
     *       disableAttribution: true,
     *     }
     *   }
     * ```
     */
    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;
    }>>;
    /**
     * Google Search retrieval options.
     *
     * ```js
     *   config: {
     *     googleSearchRetrieval: {
     *       disableAttribution: true,
     *     }
     *   }
     * ```
     */
    googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
        disableAttribution: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        disableAttribution?: boolean | undefined;
    }, {
        disableAttribution?: boolean | undefined;
    }>>;
    /**
     * Function calling options.
     *
     * E.g. forced tool call:
     *
     * ```js
     *   config: {
     *     functionCallingConfig: {
     *       mode: 'ANY',
     *     }
     *   }
     * ```
     */
    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;
    }>>;
}>, z.ZodTypeAny, "passthrough">, z.objectInputType<z.objectUtil.extendShape<{
    version: z.ZodOptional<z.ZodString>;
    temperature: z.ZodOptional<z.ZodNumber>;
    maxOutputTokens: z.ZodOptional<z.ZodNumber>;
    topK: z.ZodOptional<z.ZodNumber>;
    topP: z.ZodOptional<z.ZodNumber>;
    stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
}, {
    maxOutputTokens: z.ZodOptional<z.ZodNumber>;
    temperature: z.ZodOptional<z.ZodNumber>;
    topK: z.ZodOptional<z.ZodNumber>;
    topP: z.ZodOptional<z.ZodNumber>;
    location: z.ZodOptional<z.ZodString>;
    /**
     * Safety filter settings. See: https://cloud.google.com/vertex-ai/generative-ai/docs/multimodal/configure-safety-filters#configurable-filters
     *
     * E.g.
     *
     * ```js
     * config: {
     *   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',
     *     },
     *   ],
     * }
     * ```
     */
    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">>;
    /**
     * Vertex retrieval options.
     *
     * E.g.
     *
     * ```js
     *   config: {
     *     vertexRetrieval: {
     *       datastore: {
     *         projectId: 'your-cloud-project',
     *         location: 'us-central1',
     *         collection: 'your-collection',
     *       },
     *       disableAttribution: true,
     *     }
     *   }
     * ```
     */
    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;
    }>>;
    /**
     * Google Search retrieval options.
     *
     * ```js
     *   config: {
     *     googleSearchRetrieval: {
     *       disableAttribution: true,
     *     }
     *   }
     * ```
     */
    googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
        disableAttribution: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        disableAttribution?: boolean | undefined;
    }, {
        disableAttribution?: boolean | undefined;
    }>>;
    /**
     * Function calling options.
     *
     * E.g. forced tool call:
     *
     * ```js
     *   config: {
     *     functionCallingConfig: {
     *       mode: 'ANY',
     *     }
     *   }
     * ```
     */
    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;
    }>>;
}>, z.ZodTypeAny, "passthrough">>>;
declare const gemini15Flash: ModelReference<z.ZodObject<z.objectUtil.extendShape<{
    version: z.ZodOptional<z.ZodString>;
    temperature: z.ZodOptional<z.ZodNumber>;
    maxOutputTokens: z.ZodOptional<z.ZodNumber>;
    topK: z.ZodOptional<z.ZodNumber>;
    topP: z.ZodOptional<z.ZodNumber>;
    stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
}, {
    maxOutputTokens: z.ZodOptional<z.ZodNumber>;
    temperature: z.ZodOptional<z.ZodNumber>;
    topK: z.ZodOptional<z.ZodNumber>;
    topP: z.ZodOptional<z.ZodNumber>;
    location: z.ZodOptional<z.ZodString>;
    /**
     * Safety filter settings. See: https://cloud.google.com/vertex-ai/generative-ai/docs/multimodal/configure-safety-filters#configurable-filters
     *
     * E.g.
     *
     * ```js
     * config: {
     *   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',
     *     },
     *   ],
     * }
     * ```
     */
    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">>;
    /**
     * Vertex retrieval options.
     *
     * E.g.
     *
     * ```js
     *   config: {
     *     vertexRetrieval: {
     *       datastore: {
     *         projectId: 'your-cloud-project',
     *         location: 'us-central1',
     *         collection: 'your-collection',
     *       },
     *       disableAttribution: true,
     *     }
     *   }
     * ```
     */
    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;
    }>>;
    /**
     * Google Search retrieval options.
     *
     * ```js
     *   config: {
     *     googleSearchRetrieval: {
     *       disableAttribution: true,
     *     }
     *   }
     * ```
     */
    googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
        disableAttribution: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        disableAttribution?: boolean | undefined;
    }, {
        disableAttribution?: boolean | undefined;
    }>>;
    /**
     * Function calling options.
     *
     * E.g. forced tool call:
     *
     * ```js
     *   config: {
     *     functionCallingConfig: {
     *       mode: 'ANY',
     *     }
     *   }
     * ```
     */
    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;
    }>>;
}>, "passthrough", z.ZodTypeAny, z.objectOutputType<z.objectUtil.extendShape<{
    version: z.ZodOptional<z.ZodString>;
    temperature: z.ZodOptional<z.ZodNumber>;
    maxOutputTokens: z.ZodOptional<z.ZodNumber>;
    topK: z.ZodOptional<z.ZodNumber>;
    topP: z.ZodOptional<z.ZodNumber>;
    stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
}, {
    maxOutputTokens: z.ZodOptional<z.ZodNumber>;
    temperature: z.ZodOptional<z.ZodNumber>;
    topK: z.ZodOptional<z.ZodNumber>;
    topP: z.ZodOptional<z.ZodNumber>;
    location: z.ZodOptional<z.ZodString>;
    /**
     * Safety filter settings. See: https://cloud.google.com/vertex-ai/generative-ai/docs/multimodal/configure-safety-filters#configurable-filters
     *
     * E.g.
     *
     * ```js
     * config: {
     *   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',
     *     },
     *   ],
     * }
     * ```
     */
    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">>;
    /**
     * Vertex retrieval options.
     *
     * E.g.
     *
     * ```js
     *   config: {
     *     vertexRetrieval: {
     *       datastore: {
     *         projectId: 'your-cloud-project',
     *         location: 'us-central1',
     *         collection: 'your-collection',
     *       },
     *       disableAttribution: true,
     *     }
     *   }
     * ```
     */
    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;
    }>>;
    /**
     * Google Search retrieval options.
     *
     * ```js
     *   config: {
     *     googleSearchRetrieval: {
     *       disableAttribution: true,
     *     }
     *   }
     * ```
     */
    googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
        disableAttribution: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        disableAttribution?: boolean | undefined;
    }, {
        disableAttribution?: boolean | undefined;
    }>>;
    /**
     * Function calling options.
     *
     * E.g. forced tool call:
     *
     * ```js
     *   config: {
     *     functionCallingConfig: {
     *       mode: 'ANY',
     *     }
     *   }
     * ```
     */
    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;
    }>>;
}>, z.ZodTypeAny, "passthrough">, z.objectInputType<z.objectUtil.extendShape<{
    version: z.ZodOptional<z.ZodString>;
    temperature: z.ZodOptional<z.ZodNumber>;
    maxOutputTokens: z.ZodOptional<z.ZodNumber>;
    topK: z.ZodOptional<z.ZodNumber>;
    topP: z.ZodOptional<z.ZodNumber>;
    stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
}, {
    maxOutputTokens: z.ZodOptional<z.ZodNumber>;
    temperature: z.ZodOptional<z.ZodNumber>;
    topK: z.ZodOptional<z.ZodNumber>;
    topP: z.ZodOptional<z.ZodNumber>;
    location: z.ZodOptional<z.ZodString>;
    /**
     * Safety filter settings. See: https://cloud.google.com/vertex-ai/generative-ai/docs/multimodal/configure-safety-filters#configurable-filters
     *
     * E.g.
     *
     * ```js
     * config: {
     *   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',
     *     },
     *   ],
     * }
     * ```
     */
    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">>;
    /**
     * Vertex retrieval options.
     *
     * E.g.
     *
     * ```js
     *   config: {
     *     vertexRetrieval: {
     *       datastore: {
     *         projectId: 'your-cloud-project',
     *         location: 'us-central1',
     *         collection: 'your-collection',
     *       },
     *       disableAttribution: true,
     *     }
     *   }
     * ```
     */
    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;
    }>>;
    /**
     * Google Search retrieval options.
     *
     * ```js
     *   config: {
     *     googleSearchRetrieval: {
     *       disableAttribution: true,
     *     }
     *   }
     * ```
     */
    googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
        disableAttribution: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        disableAttribution?: boolean | undefined;
    }, {
        disableAttribution?: boolean | undefined;
    }>>;
    /**
     * Function calling options.
     *
     * E.g. forced tool call:
     *
     * ```js
     *   config: {
     *     functionCallingConfig: {
     *       mode: 'ANY',
     *     }
     *   }
     * ```
     */
    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;
    }>>;
}>, z.ZodTypeAny, "passthrough">>>;
declare const gemini20Flash001: ModelReference<z.ZodObject<z.objectUtil.extendShape<{
    version: z.ZodOptional<z.ZodString>;
    temperature: z.ZodOptional<z.ZodNumber>;
    maxOutputTokens: z.ZodOptional<z.ZodNumber>;
    topK: z.ZodOptional<z.ZodNumber>;
    topP: z.ZodOptional<z.ZodNumber>;
    stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
}, {
    maxOutputTokens: z.ZodOptional<z.ZodNumber>;
    temperature: z.ZodOptional<z.ZodNumber>;
    topK: z.ZodOptional<z.ZodNumber>;
    topP: z.ZodOptional<z.ZodNumber>;
    location: z.ZodOptional<z.ZodString>;
    /**
     * Safety filter settings. See: https://cloud.google.com/vertex-ai/generative-ai/docs/multimodal/configure-safety-filters#configurable-filters
     *
     * E.g.
     *
     * ```js
     * config: {
     *   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',
     *     },
     *   ],
     * }
     * ```
     */
    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">>;
    /**
     * Vertex retrieval options.
     *
     * E.g.
     *
     * ```js
     *   config: {
     *     vertexRetrieval: {
     *       datastore: {
     *         projectId: 'your-cloud-project',
     *         location: 'us-central1',
     *         collection: 'your-collection',
     *       },
     *       disableAttribution: true,
     *     }
     *   }
     * ```
     */
    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;
    }>>;
    /**
     * Google Search retrieval options.
     *
     * ```js
     *   config: {
     *     googleSearchRetrieval: {
     *       disableAttribution: true,
     *     }
     *   }
     * ```
     */
    googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
        disableAttribution: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        disableAttribution?: boolean | undefined;
    }, {
        disableAttribution?: boolean | undefined;
    }>>;
    /**
     * Function calling options.
     *
     * E.g. forced tool call:
     *
     * ```js
     *   config: {
     *     functionCallingConfig: {
     *       mode: 'ANY',
     *     }
     *   }
     * ```
     */
    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;
    }>>;
}>, "passthrough", z.ZodTypeAny, z.objectOutputType<z.objectUtil.extendShape<{
    version: z.ZodOptional<z.ZodString>;
    temperature: z.ZodOptional<z.ZodNumber>;
    maxOutputTokens: z.ZodOptional<z.ZodNumber>;
    topK: z.ZodOptional<z.ZodNumber>;
    topP: z.ZodOptional<z.ZodNumber>;
    stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
}, {
    maxOutputTokens: z.ZodOptional<z.ZodNumber>;
    temperature: z.ZodOptional<z.ZodNumber>;
    topK: z.ZodOptional<z.ZodNumber>;
    topP: z.ZodOptional<z.ZodNumber>;
    location: z.ZodOptional<z.ZodString>;
    /**
     * Safety filter settings. See: https://cloud.google.com/vertex-ai/generative-ai/docs/multimodal/configure-safety-filters#configurable-filters
     *
     * E.g.
     *
     * ```js
     * config: {
     *   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',
     *     },
     *   ],
     * }
     * ```
     */
    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">>;
    /**
     * Vertex retrieval options.
     *
     * E.g.
     *
     * ```js
     *   config: {
     *     vertexRetrieval: {
     *       datastore: {
     *         projectId: 'your-cloud-project',
     *         location: 'us-central1',
     *         collection: 'your-collection',
     *       },
     *       disableAttribution: true,
     *     }
     *   }
     * ```
     */
    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;
    }>>;
    /**
     * Google Search retrieval options.
     *
     * ```js
     *   config: {
     *     googleSearchRetrieval: {
     *       disableAttribution: true,
     *     }
     *   }
     * ```
     */
    googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
        disableAttribution: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        disableAttribution?: boolean | undefined;
    }, {
        disableAttribution?: boolean | undefined;
    }>>;
    /**
     * Function calling options.
     *
     * E.g. forced tool call:
     *
     * ```js
     *   config: {
     *     functionCallingConfig: {
     *       mode: 'ANY',
     *     }
     *   }
     * ```
     */
    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;
    }>>;
}>, z.ZodTypeAny, "passthrough">, z.objectInputType<z.objectUtil.extendShape<{
    version: z.ZodOptional<z.ZodString>;
    temperature: z.ZodOptional<z.ZodNumber>;
    maxOutputTokens: z.ZodOptional<z.ZodNumber>;
    topK: z.ZodOptional<z.ZodNumber>;
    topP: z.ZodOptional<z.ZodNumber>;
    stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
}, {
    maxOutputTokens: z.ZodOptional<z.ZodNumber>;
    temperature: z.ZodOptional<z.ZodNumber>;
    topK: z.ZodOptional<z.ZodNumber>;
    topP: z.ZodOptional<z.ZodNumber>;
    location: z.ZodOptional<z.ZodString>;
    /**
     * Safety filter settings. See: https://cloud.google.com/vertex-ai/generative-ai/docs/multimodal/configure-safety-filters#configurable-filters
     *
     * E.g.
     *
     * ```js
     * config: {
     *   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',
     *     },
     *   ],
     * }
     * ```
     */
    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">>;
    /**
     * Vertex retrieval options.
     *
     * E.g.
     *
     * ```js
     *   config: {
     *     vertexRetrieval: {
     *       datastore: {
     *         projectId: 'your-cloud-project',
     *         location: 'us-central1',
     *         collection: 'your-collection',
     *       },
     *       disableAttribution: true,
     *     }
     *   }
     * ```
     */
    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;
    }>>;
    /**
     * Google Search retrieval options.
     *
     * ```js
     *   config: {
     *     googleSearchRetrieval: {
     *       disableAttribution: true,
     *     }
     *   }
     * ```
     */
    googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
        disableAttribution: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        disableAttribution?: boolean | undefined;
    }, {
        disableAttribution?: boolean | undefined;
    }>>;
    /**
     * Function calling options.
     *
     * E.g. forced tool call:
     *
     * ```js
     *   config: {
     *     functionCallingConfig: {
     *       mode: 'ANY',
     *     }
     *   }
     * ```
     */
    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;
    }>>;
}>, z.ZodTypeAny, "passthrough">>>;
declare const gemini20Flash: ModelReference<z.ZodObject<z.objectUtil.extendShape<{
    version: z.ZodOptional<z.ZodString>;
    temperature: z.ZodOptional<z.ZodNumber>;
    maxOutputTokens: z.ZodOptional<z.ZodNumber>;
    topK: z.ZodOptional<z.ZodNumber>;
    topP: z.ZodOptional<z.ZodNumber>;
    stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
}, {
    maxOutputTokens: z.ZodOptional<z.ZodNumber>;
    temperature: z.ZodOptional<z.ZodNumber>;
    topK: z.ZodOptional<z.ZodNumber>;
    topP: z.ZodOptional<z.ZodNumber>;
    location: z.ZodOptional<z.ZodString>;
    /**
     * Safety filter settings. See: https://cloud.google.com/vertex-ai/generative-ai/docs/multimodal/configure-safety-filters#configurable-filters
     *
     * E.g.
     *
     * ```js
     * config: {
     *   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',
     *     },
     *   ],
     * }
     * ```
     */
    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">>;
    /**
     * Vertex retrieval options.
     *
     * E.g.
     *
     * ```js
     *   config: {
     *     vertexRetrieval: {
     *       datastore: {
     *         projectId: 'your-cloud-project',
     *         location: 'us-central1',
     *         collection: 'your-collection',
     *       },
     *       disableAttribution: true,
     *     }
     *   }
     * ```
     */
    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;
    }>>;
    /**
     * Google Search retrieval options.
     *
     * ```js
     *   config: {
     *     googleSearchRetrieval: {
     *       disableAttribution: true,
     *     }
     *   }
     * ```
     */
    googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
        disableAttribution: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        disableAttribution?: boolean | undefined;
    }, {
        disableAttribution?: boolean | undefined;
    }>>;
    /**
     * Function calling options.
     *
     * E.g. forced tool call:
     *
     * ```js
     *   config: {
     *     functionCallingConfig: {
     *       mode: 'ANY',
     *     }
     *   }
     * ```
     */
    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;
    }>>;
}>, "passthrough", z.ZodTypeAny, z.objectOutputType<z.objectUtil.extendShape<{
    version: z.ZodOptional<z.ZodString>;
    temperature: z.ZodOptional<z.ZodNumber>;
    maxOutputTokens: z.ZodOptional<z.ZodNumber>;
    topK: z.ZodOptional<z.ZodNumber>;
    topP: z.ZodOptional<z.ZodNumber>;
    stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
}, {
    maxOutputTokens: z.ZodOptional<z.ZodNumber>;
    temperature: z.ZodOptional<z.ZodNumber>;
    topK: z.ZodOptional<z.ZodNumber>;
    topP: z.ZodOptional<z.ZodNumber>;
    location: z.ZodOptional<z.ZodString>;
    /**
     * Safety filter settings. See: https://cloud.google.com/vertex-ai/generative-ai/docs/multimodal/configure-safety-filters#configurable-filters
     *
     * E.g.
     *
     * ```js
     * config: {
     *   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',
     *     },
     *   ],
     * }
     * ```
     */
    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">>;
    /**
     * Vertex retrieval options.
     *
     * E.g.
     *
     * ```js
     *   config: {
     *     vertexRetrieval: {
     *       datastore: {
     *         projectId: 'your-cloud-project',
     *         location: 'us-central1',
     *         collection: 'your-collection',
     *       },
     *       disableAttribution: true,
     *     }
     *   }
     * ```
     */
    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;
    }>>;
    /**
     * Google Search retrieval options.
     *
     * ```js
     *   config: {
     *     googleSearchRetrieval: {
     *       disableAttribution: true,
     *     }
     *   }
     * ```
     */
    googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
        disableAttribution: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        disableAttribution?: boolean | undefined;
    }, {
        disableAttribution?: boolean | undefined;
    }>>;
    /**
     * Function calling options.
     *
     * E.g. forced tool call:
     *
     * ```js
     *   config: {
     *     functionCallingConfig: {
     *       mode: 'ANY',
     *     }
     *   }
     * ```
     */
    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;
    }>>;
}>, z.ZodTypeAny, "passthrough">, z.objectInputType<z.objectUtil.extendShape<{
    version: z.ZodOptional<z.ZodString>;
    temperature: z.ZodOptional<z.ZodNumber>;
    maxOutputTokens: z.ZodOptional<z.ZodNumber>;
    topK: z.ZodOptional<z.ZodNumber>;
    topP: z.ZodOptional<z.ZodNumber>;
    stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
}, {
    maxOutputTokens: z.ZodOptional<z.ZodNumber>;
    temperature: z.ZodOptional<z.ZodNumber>;
    topK: z.ZodOptional<z.ZodNumber>;
    topP: z.ZodOptional<z.ZodNumber>;
    location: z.ZodOptional<z.ZodString>;
    /**
     * Safety filter settings. See: https://cloud.google.com/vertex-ai/generative-ai/docs/multimodal/configure-safety-filters#configurable-filters
     *
     * E.g.
     *
     * ```js
     * config: {
     *   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',
     *     },
     *   ],
     * }
     * ```
     */
    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">>;
    /**
     * Vertex retrieval options.
     *
     * E.g.
     *
     * ```js
     *   config: {
     *     vertexRetrieval: {
     *       datastore: {
     *         projectId: 'your-cloud-project',
     *         location: 'us-central1',
     *         collection: 'your-collection',
     *       },
     *       disableAttribution: true,
     *     }
     *   }
     * ```
     */
    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;
    }>>;
    /**
     * Google Search retrieval options.
     *
     * ```js
     *   config: {
     *     googleSearchRetrieval: {
     *       disableAttribution: true,
     *     }
     *   }
     * ```
     */
    googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
        disableAttribution: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        disableAttribution?: boolean | undefined;
    }, {
        disableAttribution?: boolean | undefined;
    }>>;
    /**
     * Function calling options.
     *
     * E.g. forced tool call:
     *
     * ```js
     *   config: {
     *     functionCallingConfig: {
     *       mode: 'ANY',
     *     }
     *   }
     * ```
     */
    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;
    }>>;
}>, z.ZodTypeAny, "passthrough">>>;
declare const gemini20FlashLite: ModelReference<z.ZodObject<z.objectUtil.extendShape<{
    version: z.ZodOptional<z.ZodString>;
    temperature: z.ZodOptional<z.ZodNumber>;
    maxOutputTokens: z.ZodOptional<z.ZodNumber>;
    topK: z.ZodOptional<z.ZodNumber>;
    topP: z.ZodOptional<z.ZodNumber>;
    stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
}, {
    maxOutputTokens: z.ZodOptional<z.ZodNumber>;
    temperature: z.ZodOptional<z.ZodNumber>;
    topK: z.ZodOptional<z.ZodNumber>;
    topP: z.ZodOptional<z.ZodNumber>;
    location: z.ZodOptional<z.ZodString>;
    /**
     * Safety filter settings. See: https://cloud.google.com/vertex-ai/generative-ai/docs/multimodal/configure-safety-filters#configurable-filters
     *
     * E.g.
     *
     * ```js
     * config: {
     *   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',
     *     },
     *   ],
     * }
     * ```
     */
    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">>;
    /**
     * Vertex retrieval options.
     *
     * E.g.
     *
     * ```js
     *   config: {
     *     vertexRetrieval: {
     *       datastore: {
     *         projectId: 'your-cloud-project',
     *         location: 'us-central1',
     *         collection: 'your-collection',
     *       },
     *       disableAttribution: true,
     *     }
     *   }
     * ```
     */
    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;
    }>>;
    /**
     * Google Search retrieval options.
     *
     * ```js
     *   config: {
     *     googleSearchRetrieval: {
     *       disableAttribution: true,
     *     }
     *   }
     * ```
     */
    googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
        disableAttribution: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        disableAttribution?: boolean | undefined;
    }, {
        disableAttribution?: boolean | undefined;
    }>>;
    /**
     * Function calling options.
     *
     * E.g. forced tool call:
     *
     * ```js
     *   config: {
     *     functionCallingConfig: {
     *       mode: 'ANY',
     *     }
     *   }
     * ```
     */
    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;
    }>>;
}>, "passthrough", z.ZodTypeAny, z.objectOutputType<z.objectUtil.extendShape<{
    version: z.ZodOptional<z.ZodString>;
    temperature: z.ZodOptional<z.ZodNumber>;
    maxOutputTokens: z.ZodOptional<z.ZodNumber>;
    topK: z.ZodOptional<z.ZodNumber>;
    topP: z.ZodOptional<z.ZodNumber>;
    stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
}, {
    maxOutputTokens: z.ZodOptional<z.ZodNumber>;
    temperature: z.ZodOptional<z.ZodNumber>;
    topK: z.ZodOptional<z.ZodNumber>;
    topP: z.ZodOptional<z.ZodNumber>;
    location: z.ZodOptional<z.ZodString>;
    /**
     * Safety filter settings. See: https://cloud.google.com/vertex-ai/generative-ai/docs/multimodal/configure-safety-filters#configurable-filters
     *
     * E.g.
     *
     * ```js
     * config: {
     *   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',
     *     },
     *   ],
     * }
     * ```
     */
    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">>;
    /**
     * Vertex retrieval options.
     *
     * E.g.
     *
     * ```js
     *   config: {
     *     vertexRetrieval: {
     *       datastore: {
     *         projectId: 'your-cloud-project',
     *         location: 'us-central1',
     *         collection: 'your-collection',
     *       },
     *       disableAttribution: true,
     *     }
     *   }
     * ```
     */
    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;
    }>>;
    /**
     * Google Search retrieval options.
     *
     * ```js
     *   config: {
     *     googleSearchRetrieval: {
     *       disableAttribution: true,
     *     }
     *   }
     * ```
     */
    googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
        disableAttribution: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        disableAttribution?: boolean | undefined;
    }, {
        disableAttribution?: boolean | undefined;
    }>>;
    /**
     * Function calling options.
     *
     * E.g. forced tool call:
     *
     * ```js
     *   config: {
     *     functionCallingConfig: {
     *       mode: 'ANY',
     *     }
     *   }
     * ```
     */
    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;
    }>>;
}>, z.ZodTypeAny, "passthrough">, z.objectInputType<z.objectUtil.extendShape<{
    version: z.ZodOptional<z.ZodString>;
    temperature: z.ZodOptional<z.ZodNumber>;
    maxOutputTokens: z.ZodOptional<z.ZodNumber>;
    topK: z.ZodOptional<z.ZodNumber>;
    topP: z.ZodOptional<z.ZodNumber>;
    stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
}, {
    maxOutputTokens: z.ZodOptional<z.ZodNumber>;
    temperature: z.ZodOptional<z.ZodNumber>;
    topK: z.ZodOptional<z.ZodNumber>;
    topP: z.ZodOptional<z.ZodNumber>;
    location: z.ZodOptional<z.ZodString>;
    /**
     * Safety filter settings. See: https://cloud.google.com/vertex-ai/generative-ai/docs/multimodal/configure-safety-filters#configurable-filters
     *
     * E.g.
     *
     * ```js
     * config: {
     *   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',
     *     },
     *   ],
     * }
     * ```
     */
    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">>;
    /**
     * Vertex retrieval options.
     *
     * E.g.
     *
     * ```js
     *   config: {
     *     vertexRetrieval: {
     *       datastore: {
     *         projectId: 'your-cloud-project',
     *         location: 'us-central1',
     *         collection: 'your-collection',
     *       },
     *       disableAttribution: true,
     *     }
     *   }
     * ```
     */
    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;
    }>>;
    /**
     * Google Search retrieval options.
     *
     * ```js
     *   config: {
     *     googleSearchRetrieval: {
     *       disableAttribution: true,
     *     }
     *   }
     * ```
     */
    googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
        disableAttribution: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        disableAttribution?: boolean | undefined;
    }, {
        disableAttribution?: boolean | undefined;
    }>>;
    /**
     * Function calling options.
     *
     * E.g. forced tool call:
     *
     * ```js
     *   config: {
     *     functionCallingConfig: {
     *       mode: 'ANY',
     *     }
     *   }
     * ```
     */
    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;
    }>>;
}>, z.ZodTypeAny, "passthrough">>>;
declare const gemini20FlashLitePreview0205: ModelReference<z.ZodObject<z.objectUtil.extendShape<{
    version: z.ZodOptional<z.ZodString>;
    temperature: z.ZodOptional<z.ZodNumber>;
    maxOutputTokens: z.ZodOptional<z.ZodNumber>;
    topK: z.ZodOptional<z.ZodNumber>;
    topP: z.ZodOptional<z.ZodNumber>;
    stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
}, {
    maxOutputTokens: z.ZodOptional<z.ZodNumber>;
    temperature: z.ZodOptional<z.ZodNumber>;
    topK: z.ZodOptional<z.ZodNumber>;
    topP: z.ZodOptional<z.ZodNumber>;
    location: z.ZodOptional<z.ZodString>;
    /**
     * Safety filter settings. See: https://cloud.google.com/vertex-ai/generative-ai/docs/multimodal/configure-safety-filters#configurable-filters
     *
     * E.g.
     *
     * ```js
     * config: {
     *   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',
     *     },
     *   ],
     * }
     * ```
     */
    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">>;
    /**
     * Vertex retrieval options.
     *
     * E.g.
     *
     * ```js
     *   config: {
     *     vertexRetrieval: {
     *       datastore: {
     *         projectId: 'your-cloud-project',
     *         location: 'us-central1',
     *         collection: 'your-collection',
     *       },
     *       disableAttribution: true,
     *     }
     *   }
     * ```
     */
    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;
    }>>;
    /**
     * Google Search retrieval options.
     *
     * ```js
     *   config: {
     *     googleSearchRetrieval: {
     *       disableAttribution: true,
     *     }
     *   }
     * ```
     */
    googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
        disableAttribution: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        disableAttribution?: boolean | undefined;
    }, {
        disableAttribution?: boolean | undefined;
    }>>;
    /**
     * Function calling options.
     *
     * E.g. forced tool call:
     *
     * ```js
     *   config: {
     *     functionCallingConfig: {
     *       mode: 'ANY',
     *     }
     *   }
     * ```
     */
    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;
    }>>;
}>, "passthrough", z.ZodTypeAny, z.objectOutputType<z.objectUtil.extendShape<{
    version: z.ZodOptional<z.ZodString>;
    temperature: z.ZodOptional<z.ZodNumber>;
    maxOutputTokens: z.ZodOptional<z.ZodNumber>;
    topK: z.ZodOptional<z.ZodNumber>;
    topP: z.ZodOptional<z.ZodNumber>;
    stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
}, {
    maxOutputTokens: z.ZodOptional<z.ZodNumber>;
    temperature: z.ZodOptional<z.ZodNumber>;
    topK: z.ZodOptional<z.ZodNumber>;
    topP: z.ZodOptional<z.ZodNumber>;
    location: z.ZodOptional<z.ZodString>;
    /**
     * Safety filter settings. See: https://cloud.google.com/vertex-ai/generative-ai/docs/multimodal/configure-safety-filters#configurable-filters
     *
     * E.g.
     *
     * ```js
     * config: {
     *   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',
     *     },
     *   ],
     * }
     * ```
     */
    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">>;
    /**
     * Vertex retrieval options.
     *
     * E.g.
     *
     * ```js
     *   config: {
     *     vertexRetrieval: {
     *       datastore: {
     *         projectId: 'your-cloud-project',
     *         location: 'us-central1',
     *         collection: 'your-collection',
     *       },
     *       disableAttribution: true,
     *     }
     *   }
     * ```
     */
    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;
    }>>;
    /**
     * Google Search retrieval options.
     *
     * ```js
     *   config: {
     *     googleSearchRetrieval: {
     *       disableAttribution: true,
     *     }
     *   }
     * ```
     */
    googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
        disableAttribution: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        disableAttribution?: boolean | undefined;
    }, {
        disableAttribution?: boolean | undefined;
    }>>;
    /**
     * Function calling options.
     *
     * E.g. forced tool call:
     *
     * ```js
     *   config: {
     *     functionCallingConfig: {
     *       mode: 'ANY',
     *     }
     *   }
     * ```
     */
    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;
    }>>;
}>, z.ZodTypeAny, "passthrough">, z.objectInputType<z.objectUtil.extendShape<{
    version: z.ZodOptional<z.ZodString>;
    temperature: z.ZodOptional<z.ZodNumber>;
    maxOutputTokens: z.ZodOptional<z.ZodNumber>;
    topK: z.ZodOptional<z.ZodNumber>;
    topP: z.ZodOptional<z.ZodNumber>;
    stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
}, {
    maxOutputTokens: z.ZodOptional<z.ZodNumber>;
    temperature: z.ZodOptional<z.ZodNumber>;
    topK: z.ZodOptional<z.ZodNumber>;
    topP: z.ZodOptional<z.ZodNumber>;
    location: z.ZodOptional<z.ZodString>;
    /**
     * Safety filter settings. See: https://cloud.google.com/vertex-ai/generative-ai/docs/multimodal/configure-safety-filters#configurable-filters
     *
     * E.g.
     *
     * ```js
     * config: {
     *   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',
     *     },
     *   ],
     * }
     * ```
     */
    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">>;
    /**
     * Vertex retrieval options.
     *
     * E.g.
     *
     * ```js
     *   config: {
     *     vertexRetrieval: {
     *       datastore: {
     *         projectId: 'your-cloud-project',
     *         location: 'us-central1',
     *         collection: 'your-collection',
     *       },
     *       disableAttribution: true,
     *     }
     *   }
     * ```
     */
    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;
    }>>;
    /**
     * Google Search retrieval options.
     *
     * ```js
     *   config: {
     *     googleSearchRetrieval: {
     *       disableAttribution: true,
     *     }
     *   }
     * ```
     */
    googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
        disableAttribution: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        disableAttribution?: boolean | undefined;
    }, {
        disableAttribution?: boolean | undefined;
    }>>;
    /**
     * Function calling options.
     *
     * E.g. forced tool call:
     *
     * ```js
     *   config: {
     *     functionCallingConfig: {
     *       mode: 'ANY',
     *     }
     *   }
     * ```
     */
    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;
    }>>;
}>, z.ZodTypeAny, "passthrough">>>;
declare const gemini20ProExp0205: ModelReference<z.ZodObject<z.objectUtil.extendShape<{
    version: z.ZodOptional<z.ZodString>;
    temperature: z.ZodOptional<z.ZodNumber>;
    maxOutputTokens: z.ZodOptional<z.ZodNumber>;
    topK: z.ZodOptional<z.ZodNumber>;
    topP: z.ZodOptional<z.ZodNumber>;
    stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
}, {
    maxOutputTokens: z.ZodOptional<z.ZodNumber>;
    temperature: z.ZodOptional<z.ZodNumber>;
    topK: z.ZodOptional<z.ZodNumber>;
    topP: z.ZodOptional<z.ZodNumber>;
    location: z.ZodOptional<z.ZodString>;
    /**
     * Safety filter settings. See: https://cloud.google.com/vertex-ai/generative-ai/docs/multimodal/configure-safety-filters#configurable-filters
     *
     * E.g.
     *
     * ```js
     * config: {
     *   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',
     *     },
     *   ],
     * }
     * ```
     */
    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">>;
    /**
     * Vertex retrieval options.
     *
     * E.g.
     *
     * ```js
     *   config: {
     *     vertexRetrieval: {
     *       datastore: {
     *         projectId: 'your-cloud-project',
     *         location: 'us-central1',
     *         collection: 'your-collection',
     *       },
     *       disableAttribution: true,
     *     }
     *   }
     * ```
     */
    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;
    }>>;
    /**
     * Google Search retrieval options.
     *
     * ```js
     *   config: {
     *     googleSearchRetrieval: {
     *       disableAttribution: true,
     *     }
     *   }
     * ```
     */
    googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
        disableAttribution: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        disableAttribution?: boolean | undefined;
    }, {
        disableAttribution?: boolean | undefined;
    }>>;
    /**
     * Function calling options.
     *
     * E.g. forced tool call:
     *
     * ```js
     *   config: {
     *     functionCallingConfig: {
     *       mode: 'ANY',
     *     }
     *   }
     * ```
     */
    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;
    }>>;
}>, "passthrough", z.ZodTypeAny, z.objectOutputType<z.objectUtil.extendShape<{
    version: z.ZodOptional<z.ZodString>;
    temperature: z.ZodOptional<z.ZodNumber>;
    maxOutputTokens: z.ZodOptional<z.ZodNumber>;
    topK: z.ZodOptional<z.ZodNumber>;
    topP: z.ZodOptional<z.ZodNumber>;
    stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
}, {
    maxOutputTokens: z.ZodOptional<z.ZodNumber>;
    temperature: z.ZodOptional<z.ZodNumber>;
    topK: z.ZodOptional<z.ZodNumber>;
    topP: z.ZodOptional<z.ZodNumber>;
    location: z.ZodOptional<z.ZodString>;
    /**
     * Safety filter settings. See: https://cloud.google.com/vertex-ai/generative-ai/docs/multimodal/configure-safety-filters#configurable-filters
     *
     * E.g.
     *
     * ```js
     * config: {
     *   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',
     *     },
     *   ],
     * }
     * ```
     */
    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">>;
    /**
     * Vertex retrieval options.
     *
     * E.g.
     *
     * ```js
     *   config: {
     *     vertexRetrieval: {
     *       datastore: {
     *         projectId: 'your-cloud-project',
     *         location: 'us-central1',
     *         collection: 'your-collection',
     *       },
     *       disableAttribution: true,
     *     }
     *   }
     * ```
     */
    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;
    }>>;
    /**
     * Google Search retrieval options.
     *
     * ```js
     *   config: {
     *     googleSearchRetrieval: {
     *       disableAttribution: true,
     *     }
     *   }
     * ```
     */
    googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
        disableAttribution: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        disableAttribution?: boolean | undefined;
    }, {
        disableAttribution?: boolean | undefined;
    }>>;
    /**
     * Function calling options.
     *
     * E.g. forced tool call:
     *
     * ```js
     *   config: {
     *     functionCallingConfig: {
     *       mode: 'ANY',
     *     }
     *   }
     * ```
     */
    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;
    }>>;
}>, z.ZodTypeAny, "passthrough">, z.objectInputType<z.objectUtil.extendShape<{
    version: z.ZodOptional<z.ZodString>;
    temperature: z.ZodOptional<z.ZodNumber>;
    maxOutputTokens: z.ZodOptional<z.ZodNumber>;
    topK: z.ZodOptional<z.ZodNumber>;
    topP: z.ZodOptional<z.ZodNumber>;
    stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
}, {
    maxOutputTokens: z.ZodOptional<z.ZodNumber>;
    temperature: z.ZodOptional<z.ZodNumber>;
    topK: z.ZodOptional<z.ZodNumber>;
    topP: z.ZodOptional<z.ZodNumber>;
    location: z.ZodOptional<z.ZodString>;
    /**
     * Safety filter settings. See: https://cloud.google.com/vertex-ai/generative-ai/docs/multimodal/configure-safety-filters#configurable-filters
     *
     * E.g.
     *
     * ```js
     * config: {
     *   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',
     *     },
     *   ],
     * }
     * ```
     */
    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">>;
    /**
     * Vertex retrieval options.
     *
     * E.g.
     *
     * ```js
     *   config: {
     *     vertexRetrieval: {
     *       datastore: {
     *         projectId: 'your-cloud-project',
     *         location: 'us-central1',
     *         collection: 'your-collection',
     *       },
     *       disableAttribution: true,
     *     }
     *   }
     * ```
     */
    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;
    }>>;
    /**
     * Google Search retrieval options.
     *
     * ```js
     *   config: {
     *     googleSearchRetrieval: {
     *       disableAttribution: true,
     *     }
     *   }
     * ```
     */
    googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
        disableAttribution: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        disableAttribution?: boolean | undefined;
    }, {
        disableAttribution?: boolean | undefined;
    }>>;
    /**
     * Function calling options.
     *
     * E.g. forced tool call:
     *
     * ```js
     *   config: {
     *     functionCallingConfig: {
     *       mode: 'ANY',
     *     }
     *   }
     * ```
     */
    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;
    }>>;
}>, z.ZodTypeAny, "passthrough">>>;
declare const gemini25FlashPreview0417: ModelReference<z.ZodObject<z.objectUtil.extendShape<{
    version: z.ZodOptional<z.ZodString>;
    temperature: z.ZodOptional<z.ZodNumber>;
    maxOutputTokens: z.ZodOptional<z.ZodNumber>;
    topK: z.ZodOptional<z.ZodNumber>;
    topP: z.ZodOptional<z.ZodNumber>;
    stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
}, {
    maxOutputTokens: z.ZodOptional<z.ZodNumber>;
    temperature: z.ZodOptional<z.ZodNumber>;
    topK: z.ZodOptional<z.ZodNumber>;
    topP: z.ZodOptional<z.ZodNumber>;
    location: z.ZodOptional<z.ZodString>;
    /**
     * Safety filter settings. See: https://cloud.google.com/vertex-ai/generative-ai/docs/multimodal/configure-safety-filters#configurable-filters
     *
     * E.g.
     *
     * ```js
     * config: {
     *   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',
     *     },
     *   ],
     * }
     * ```
     */
    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">>;
    /**
     * Vertex retrieval options.
     *
     * E.g.
     *
     * ```js
     *   config: {
     *     vertexRetrieval: {
     *       datastore: {
     *         projectId: 'your-cloud-project',
     *         location: 'us-central1',
     *         collection: 'your-collection',
     *       },
     *       disableAttribution: true,
     *     }
     *   }
     * ```
     */
    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;
    }>>;
    /**
     * Google Search retrieval options.
     *
     * ```js
     *   config: {
     *     googleSearchRetrieval: {
     *       disableAttribution: true,
     *     }
     *   }
     * ```
     */
    googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
        disableAttribution: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        disableAttribution?: boolean | undefined;
    }, {
        disableAttribution?: boolean | undefined;
    }>>;
    /**
     * Function calling options.
     *
     * E.g. forced tool call:
     *
     * ```js
     *   config: {
     *     functionCallingConfig: {
     *       mode: 'ANY',
     *     }
     *   }
     * ```
     */
    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;
    }>>;
}>, "passthrough", z.ZodTypeAny, z.objectOutputType<z.objectUtil.extendShape<{
    version: z.ZodOptional<z.ZodString>;
    temperature: z.ZodOptional<z.ZodNumber>;
    maxOutputTokens: z.ZodOptional<z.ZodNumber>;
    topK: z.ZodOptional<z.ZodNumber>;
    topP: z.ZodOptional<z.ZodNumber>;
    stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
}, {
    maxOutputTokens: z.ZodOptional<z.ZodNumber>;
    temperature: z.ZodOptional<z.ZodNumber>;
    topK: z.ZodOptional<z.ZodNumber>;
    topP: z.ZodOptional<z.ZodNumber>;
    location: z.ZodOptional<z.ZodString>;
    /**
     * Safety filter settings. See: https://cloud.google.com/vertex-ai/generative-ai/docs/multimodal/configure-safety-filters#configurable-filters
     *
     * E.g.
     *
     * ```js
     * config: {
     *   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',
     *     },
     *   ],
     * }
     * ```
     */
    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">>;
    /**
     * Vertex retrieval options.
     *
     * E.g.
     *
     * ```js
     *   config: {
     *     vertexRetrieval: {
     *       datastore: {
     *         projectId: 'your-cloud-project',
     *         location: 'us-central1',
     *         collection: 'your-collection',
     *       },
     *       disableAttribution: true,
     *     }
     *   }
     * ```
     */
    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;
    }>>;
    /**
     * Google Search retrieval options.
     *
     * ```js
     *   config: {
     *     googleSearchRetrieval: {
     *       disableAttribution: true,
     *     }
     *   }
     * ```
     */
    googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
        disableAttribution: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        disableAttribution?: boolean | undefined;
    }, {
        disableAttribution?: boolean | undefined;
    }>>;
    /**
     * Function calling options.
     *
     * E.g. forced tool call:
     *
     * ```js
     *   config: {
     *     functionCallingConfig: {
     *       mode: 'ANY',
     *     }
     *   }
     * ```
     */
    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;
    }>>;
}>, z.ZodTypeAny, "passthrough">, z.objectInputType<z.objectUtil.extendShape<{
    version: z.ZodOptional<z.ZodString>;
    temperature: z.ZodOptional<z.ZodNumber>;
    maxOutputTokens: z.ZodOptional<z.ZodNumber>;
    topK: z.ZodOptional<z.ZodNumber>;
    topP: z.ZodOptional<z.ZodNumber>;
    stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
}, {
    maxOutputTokens: z.ZodOptional<z.ZodNumber>;
    temperature: z.ZodOptional<z.ZodNumber>;
    topK: z.ZodOptional<z.ZodNumber>;
    topP: z.ZodOptional<z.ZodNumber>;
    location: z.ZodOptional<z.ZodString>;
    /**
     * Safety filter settings. See: https://cloud.google.com/vertex-ai/generative-ai/docs/multimodal/configure-safety-filters#configurable-filters
     *
     * E.g.
     *
     * ```js
     * config: {
     *   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',
     *     },
     *   ],
     * }
     * ```
     */
    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">>;
    /**
     * Vertex retrieval options.
     *
     * E.g.
     *
     * ```js
     *   config: {
     *     vertexRetrieval: {
     *       datastore: {
     *         projectId: 'your-cloud-project',
     *         location: 'us-central1',
     *         collection: 'your-collection',
     *       },
     *       disableAttribution: true,
     *     }
     *   }
     * ```
     */
    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;
    }>>;
    /**
     * Google Search retrieval options.
     *
     * ```js
     *   config: {
     *     googleSearchRetrieval: {
     *       disableAttribution: true,
     *     }
     *   }
     * ```
     */
    googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
        disableAttribution: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        disableAttribution?: boolean | undefined;
    }, {
        disableAttribution?: boolean | undefined;
    }>>;
    /**
     * Function calling options.
     *
     * E.g. forced tool call:
     *
     * ```js
     *   config: {
     *     functionCallingConfig: {
     *       mode: 'ANY',
     *     }
     *   }
     * ```
     */
    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;
    }>>;
}>, z.ZodTypeAny, "passthrough">>>;
declare const gemini25ProExp0325: ModelReference<z.ZodObject<z.objectUtil.extendShape<{
    version: z.ZodOptional<z.ZodString>;
    temperature: z.ZodOptional<z.ZodNumber>;
    maxOutputTokens: z.ZodOptional<z.ZodNumber>;
    topK: z.ZodOptional<z.ZodNumber>;
    topP: z.ZodOptional<z.ZodNumber>;
    stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
}, {
    maxOutputTokens: z.ZodOptional<z.ZodNumber>;
    temperature: z.ZodOptional<z.ZodNumber>;
    topK: z.ZodOptional<z.ZodNumber>;
    topP: z.ZodOptional<z.ZodNumber>;
    location: z.ZodOptional<z.ZodString>;
    /**
     * Safety filter settings. See: https://cloud.google.com/vertex-ai/generative-ai/docs/multimodal/configure-safety-filters#configurable-filters
     *
     * E.g.
     *
     * ```js
     * config: {
     *   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',
     *     },
     *   ],
     * }
     * ```
     */
    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">>;
    /**
     * Vertex retrieval options.
     *
     * E.g.
     *
     * ```js
     *   config: {
     *     vertexRetrieval: {
     *       datastore: {
     *         projectId: 'your-cloud-project',
     *         location: 'us-central1',
     *         collection: 'your-collection',
     *       },
     *       disableAttribution: true,
     *     }
     *   }
     * ```
     */
    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;
    }>>;
    /**
     * Google Search retrieval options.
     *
     * ```js
     *   config: {
     *     googleSearchRetrieval: {
     *       disableAttribution: true,
     *     }
     *   }
     * ```
     */
    googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
        disableAttribution: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        disableAttribution?: boolean | undefined;
    }, {
        disableAttribution?: boolean | undefined;
    }>>;
    /**
     * Function calling options.
     *
     * E.g. forced tool call:
     *
     * ```js
     *   config: {
     *     functionCallingConfig: {
     *       mode: 'ANY',
     *     }
     *   }
     * ```
     */
    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;
    }>>;
}>, "passthrough", z.ZodTypeAny, z.objectOutputType<z.objectUtil.extendShape<{
    version: z.ZodOptional<z.ZodString>;
    temperature: z.ZodOptional<z.ZodNumber>;
    maxOutputTokens: z.ZodOptional<z.ZodNumber>;
    topK: z.ZodOptional<z.ZodNumber>;
    topP: z.ZodOptional<z.ZodNumber>;
    stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
}, {
    maxOutputTokens: z.ZodOptional<z.ZodNumber>;
    temperature: z.ZodOptional<z.ZodNumber>;
    topK: z.ZodOptional<z.ZodNumber>;
    topP: z.ZodOptional<z.ZodNumber>;
    location: z.ZodOptional<z.ZodString>;
    /**
     * Safety filter settings. See: https://cloud.google.com/vertex-ai/generative-ai/docs/multimodal/configure-safety-filters#configurable-filters
     *
     * E.g.
     *
     * ```js
     * config: {
     *   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',
     *     },
     *   ],
     * }
     * ```
     */
    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">>;
    /**
     * Vertex retrieval options.
     *
     * E.g.
     *
     * ```js
     *   config: {
     *     vertexRetrieval: {
     *       datastore: {
     *         projectId: 'your-cloud-project',
     *         location: 'us-central1',
     *         collection: 'your-collection',
     *       },
     *       disableAttribution: true,
     *     }
     *   }
     * ```
     */
    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;
    }>>;
    /**
     * Google Search retrieval options.
     *
     * ```js
     *   config: {
     *     googleSearchRetrieval: {
     *       disableAttribution: true,
     *     }
     *   }
     * ```
     */
    googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
        disableAttribution: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        disableAttribution?: boolean | undefined;
    }, {
        disableAttribution?: boolean | undefined;
    }>>;
    /**
     * Function calling options.
     *
     * E.g. forced tool call:
     *
     * ```js
     *   config: {
     *     functionCallingConfig: {
     *       mode: 'ANY',
     *     }
     *   }
     * ```
     */
    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;
    }>>;
}>, z.ZodTypeAny, "passthrough">, z.objectInputType<z.objectUtil.extendShape<{
    version: z.ZodOptional<z.ZodString>;
    temperature: z.ZodOptional<z.ZodNumber>;
    maxOutputTokens: z.ZodOptional<z.ZodNumber>;
    topK: z.ZodOptional<z.ZodNumber>;
    topP: z.ZodOptional<z.ZodNumber>;
    stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
}, {
    maxOutputTokens: z.ZodOptional<z.ZodNumber>;
    temperature: z.ZodOptional<z.ZodNumber>;
    topK: z.ZodOptional<z.ZodNumber>;
    topP: z.ZodOptional<z.ZodNumber>;
    location: z.ZodOptional<z.ZodString>;
    /**
     * Safety filter settings. See: https://cloud.google.com/vertex-ai/generative-ai/docs/multimodal/configure-safety-filters#configurable-filters
     *
     * E.g.
     *
     * ```js
     * config: {
     *   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',
     *     },
     *   ],
     * }
     * ```
     */
    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">>;
    /**
     * Vertex retrieval options.
     *
     * E.g.
     *
     * ```js
     *   config: {
     *     vertexRetrieval: {
     *       datastore: {
     *         projectId: 'your-cloud-project',
     *         location: 'us-central1',
     *         collection: 'your-collection',
     *       },
     *       disableAttribution: true,
     *     }
     *   }
     * ```
     */
    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;
    }>>;
    /**
     * Google Search retrieval options.
     *
     * ```js
     *   config: {
     *     googleSearchRetrieval: {
     *       disableAttribution: true,
     *     }
     *   }
     * ```
     */
    googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
        disableAttribution: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        disableAttribution?: boolean | undefined;
    }, {
        disableAttribution?: boolean | undefined;
    }>>;
    /**
     * Function calling options.
     *
     * E.g. forced tool call:
     *
     * ```js
     *   config: {
     *     functionCallingConfig: {
     *       mode: 'ANY',
     *     }
     *   }
     * ```
     */
    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;
    }>>;
}>, z.ZodTypeAny, "passthrough">>>;
declare const gemini25ProPreview0325: ModelReference<z.ZodObject<z.objectUtil.extendShape<{
    version: z.ZodOptional<z.ZodString>;
    temperature: z.ZodOptional<z.ZodNumber>;
    maxOutputTokens: z.ZodOptional<z.ZodNumber>;
    topK: z.ZodOptional<z.ZodNumber>;
    topP: z.ZodOptional<z.ZodNumber>;
    stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
}, {
    maxOutputTokens: z.ZodOptional<z.ZodNumber>;
    temperature: z.ZodOptional<z.ZodNumber>;
    topK: z.ZodOptional<z.ZodNumber>;
    topP: z.ZodOptional<z.ZodNumber>;
    location: z.ZodOptional<z.ZodString>;
    /**
     * Safety filter settings. See: https://cloud.google.com/vertex-ai/generative-ai/docs/multimodal/configure-safety-filters#configurable-filters
     *
     * E.g.
     *
     * ```js
     * config: {
     *   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',
     *     },
     *   ],
     * }
     * ```
     */
    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">>;
    /**
     * Vertex retrieval options.
     *
     * E.g.
     *
     * ```js
     *   config: {
     *     vertexRetrieval: {
     *       datastore: {
     *         projectId: 'your-cloud-project',
     *         location: 'us-central1',
     *         collection: 'your-collection',
     *       },
     *       disableAttribution: true,
     *     }
     *   }
     * ```
     */
    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;
    }>>;
    /**
     * Google Search retrieval options.
     *
     * ```js
     *   config: {
     *     googleSearchRetrieval: {
     *       disableAttribution: true,
     *     }
     *   }
     * ```
     */
    googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
        disableAttribution: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        disableAttribution?: boolean | undefined;
    }, {
        disableAttribution?: boolean | undefined;
    }>>;
    /**
     * Function calling options.
     *
     * E.g. forced tool call:
     *
     * ```js
     *   config: {
     *     functionCallingConfig: {
     *       mode: 'ANY',
     *     }
     *   }
     * ```
     */
    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;
    }>>;
}>, "passthrough", z.ZodTypeAny, z.objectOutputType<z.objectUtil.extendShape<{
    version: z.ZodOptional<z.ZodString>;
    temperature: z.ZodOptional<z.ZodNumber>;
    maxOutputTokens: z.ZodOptional<z.ZodNumber>;
    topK: z.ZodOptional<z.ZodNumber>;
    topP: z.ZodOptional<z.ZodNumber>;
    stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
}, {
    maxOutputTokens: z.ZodOptional<z.ZodNumber>;
    temperature: z.ZodOptional<z.ZodNumber>;
    topK: z.ZodOptional<z.ZodNumber>;
    topP: z.ZodOptional<z.ZodNumber>;
    location: z.ZodOptional<z.ZodString>;
    /**
     * Safety filter settings. See: https://cloud.google.com/vertex-ai/generative-ai/docs/multimodal/configure-safety-filters#configurable-filters
     *
     * E.g.
     *
     * ```js
     * config: {
     *   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',
     *     },
     *   ],
     * }
     * ```
     */
    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">>;
    /**
     * Vertex retrieval options.
     *
     * E.g.
     *
     * ```js
     *   config: {
     *     vertexRetrieval: {
     *       datastore: {
     *         projectId: 'your-cloud-project',
     *         location: 'us-central1',
     *         collection: 'your-collection',
     *       },
     *       disableAttribution: true,
     *     }
     *   }
     * ```
     */
    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;
    }>>;
    /**
     * Google Search retrieval options.
     *
     * ```js
     *   config: {
     *     googleSearchRetrieval: {
     *       disableAttribution: true,
     *     }
     *   }
     * ```
     */
    googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
        disableAttribution: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        disableAttribution?: boolean | undefined;
    }, {
        disableAttribution?: boolean | undefined;
    }>>;
    /**
     * Function calling options.
     *
     * E.g. forced tool call:
     *
     * ```js
     *   config: {
     *     functionCallingConfig: {
     *       mode: 'ANY',
     *     }
     *   }
     * ```
     */
    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;
    }>>;
}>, z.ZodTypeAny, "passthrough">, z.objectInputType<z.objectUtil.extendShape<{
    version: z.ZodOptional<z.ZodString>;
    temperature: z.ZodOptional<z.ZodNumber>;
    maxOutputTokens: z.ZodOptional<z.ZodNumber>;
    topK: z.ZodOptional<z.ZodNumber>;
    topP: z.ZodOptional<z.ZodNumber>;
    stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
}, {
    maxOutputTokens: z.ZodOptional<z.ZodNumber>;
    temperature: z.ZodOptional<z.ZodNumber>;
    topK: z.ZodOptional<z.ZodNumber>;
    topP: z.ZodOptional<z.ZodNumber>;
    location: z.ZodOptional<z.ZodString>;
    /**
     * Safety filter settings. See: https://cloud.google.com/vertex-ai/generative-ai/docs/multimodal/configure-safety-filters#configurable-filters
     *
     * E.g.
     *
     * ```js
     * config: {
     *   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',
     *     },
     *   ],
     * }
     * ```
     */
    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">>;
    /**
     * Vertex retrieval options.
     *
     * E.g.
     *
     * ```js
     *   config: {
     *     vertexRetrieval: {
     *       datastore: {
     *         projectId: 'your-cloud-project',
     *         location: 'us-central1',
     *         collection: 'your-collection',
     *       },
     *       disableAttribution: true,
     *     }
     *   }
     * ```
     */
    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;
    }>>;
    /**
     * Google Search retrieval options.
     *
     * ```js
     *   config: {
     *     googleSearchRetrieval: {
     *       disableAttribution: true,
     *     }
     *   }
     * ```
     */
    googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
        disableAttribution: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        disableAttribution?: boolean | undefined;
    }, {
        disableAttribution?: boolean | undefined;
    }>>;
    /**
     * Function calling options.
     *
     * E.g. forced tool call:
     *
     * ```js
     *   config: {
     *     functionCallingConfig: {
     *       mode: 'ANY',
     *     }
     *   }
     * ```
     */
    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;
    }>>;
}>, z.ZodTypeAny, "passthrough">>>;
declare const GENERIC_GEMINI_MODEL: ModelReference<z.ZodObject<z.objectUtil.extendShape<{
    version: z.ZodOptional<z.ZodString>;
    temperature: z.ZodOptional<z.ZodNumber>;
    maxOutputTokens: z.ZodOptional<z.ZodNumber>;
    topK: z.ZodOptional<z.ZodNumber>;
    topP: z.ZodOptional<z.ZodNumber>;
    stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
}, {
    maxOutputTokens: z.ZodOptional<z.ZodNumber>;
    temperature: z.ZodOptional<z.ZodNumber>;
    topK: z.ZodOptional<z.ZodNumber>;
    topP: z.ZodOptional<z.ZodNumber>;
    location: z.ZodOptional<z.ZodString>;
    /**
     * Safety filter settings. See: https://cloud.google.com/vertex-ai/generative-ai/docs/multimodal/configure-safety-filters#configurable-filters
     *
     * E.g.
     *
     * ```js
     * config: {
     *   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',
     *     },
     *   ],
     * }
     * ```
     */
    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">>;
    /**
     * Vertex retrieval options.
     *
     * E.g.
     *
     * ```js
     *   config: {
     *     vertexRetrieval: {
     *       datastore: {
     *         projectId: 'your-cloud-project',
     *         location: 'us-central1',
     *         collection: 'your-collection',
     *       },
     *       disableAttribution: true,
     *     }
     *   }
     * ```
     */
    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;
    }>>;
    /**
     * Google Search retrieval options.
     *
     * ```js
     *   config: {
     *     googleSearchRetrieval: {
     *       disableAttribution: true,
     *     }
     *   }
     * ```
     */
    googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
        disableAttribution: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        disableAttribution?: boolean | undefined;
    }, {
        disableAttribution?: boolean | undefined;
    }>>;
    /**
     * Function calling options.
     *
     * E.g. forced tool call:
     *
     * ```js
     *   config: {
     *     functionCallingConfig: {
     *       mode: 'ANY',
     *     }
     *   }
     * ```
     */
    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;
    }>>;
}>, "passthrough", z.ZodTypeAny, z.objectOutputType<z.objectUtil.extendShape<{
    version: z.ZodOptional<z.ZodString>;
    temperature: z.ZodOptional<z.ZodNumber>;
    maxOutputTokens: z.ZodOptional<z.ZodNumber>;
    topK: z.ZodOptional<z.ZodNumber>;
    topP: z.ZodOptional<z.ZodNumber>;
    stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
}, {
    maxOutputTokens: z.ZodOptional<z.ZodNumber>;
    temperature: z.ZodOptional<z.ZodNumber>;
    topK: z.ZodOptional<z.ZodNumber>;
    topP: z.ZodOptional<z.ZodNumber>;
    location: z.ZodOptional<z.ZodString>;
    /**
     * Safety filter settings. See: https://cloud.google.com/vertex-ai/generative-ai/docs/multimodal/configure-safety-filters#configurable-filters
     *
     * E.g.
     *
     * ```js
     * config: {
     *   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',
     *     },
     *   ],
     * }
     * ```
     */
    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">>;
    /**
     * Vertex retrieval options.
     *
     * E.g.
     *
     * ```js
     *   config: {
     *     vertexRetrieval: {
     *       datastore: {
     *         projectId: 'your-cloud-project',
     *         location: 'us-central1',
     *         collection: 'your-collection',
     *       },
     *       disableAttribution: true,
     *     }
     *   }
     * ```
     */
    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;
    }>>;
    /**
     * Google Search retrieval options.
     *
     * ```js
     *   config: {
     *     googleSearchRetrieval: {
     *       disableAttribution: true,
     *     }
     *   }
     * ```
     */
    googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
        disableAttribution: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        disableAttribution?: boolean | undefined;
    }, {
        disableAttribution?: boolean | undefined;
    }>>;
    /**
     * Function calling options.
     *
     * E.g. forced tool call:
     *
     * ```js
     *   config: {
     *     functionCallingConfig: {
     *       mode: 'ANY',
     *     }
     *   }
     * ```
     */
    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;
    }>>;
}>, z.ZodTypeAny, "passthrough">, z.objectInputType<z.objectUtil.extendShape<{
    version: z.ZodOptional<z.ZodString>;
    temperature: z.ZodOptional<z.ZodNumber>;
    maxOutputTokens: z.ZodOptional<z.ZodNumber>;
    topK: z.ZodOptional<z.ZodNumber>;
    topP: z.ZodOptional<z.ZodNumber>;
    stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
}, {
    maxOutputTokens: z.ZodOptional<z.ZodNumber>;
    temperature: z.ZodOptional<z.ZodNumber>;
    topK: z.ZodOptional<z.ZodNumber>;
    topP: z.ZodOptional<z.ZodNumber>;
    location: z.ZodOptional<z.ZodString>;
    /**
     * Safety filter settings. See: https://cloud.google.com/vertex-ai/generative-ai/docs/multimodal/configure-safety-filters#configurable-filters
     *
     * E.g.
     *
     * ```js
     * config: {
     *   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',
     *     },
     *   ],
     * }
     * ```
     */
    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">>;
    /**
     * Vertex retrieval options.
     *
     * E.g.
     *
     * ```js
     *   config: {
     *     vertexRetrieval: {
     *       datastore: {
     *         projectId: 'your-cloud-project',
     *         location: 'us-central1',
     *         collection: 'your-collection',
     *       },
     *       disableAttribution: true,
     *     }
     *   }
     * ```
     */
    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;
    }>>;
    /**
     * Google Search retrieval options.
     *
     * ```js
     *   config: {
     *     googleSearchRetrieval: {
     *       disableAttribution: true,
     *     }
     *   }
     * ```
     */
    googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
        disableAttribution: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        disableAttribution?: boolean | undefined;
    }, {
        disableAttribution?: boolean | undefined;
    }>>;
    /**
     * Function calling options.
     *
     * E.g. forced tool call:
     *
     * ```js
     *   config: {
     *     functionCallingConfig: {
     *       mode: 'ANY',
     *     }
     *   }
     * ```
     */
    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;
    }>>;
}>, z.ZodTypeAny, "passthrough">>>;
declare const SUPPORTED_V15_MODELS: {
    'gemini-1.5-pro': ModelReference<z.ZodObject<z.objectUtil.extendShape<{
        version: z.ZodOptional<z.ZodString>;
        temperature: z.ZodOptional<z.ZodNumber>;
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    }, {
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        temperature: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        location: z.ZodOptional<z.ZodString>;
        /**
         * Safety filter settings. See: https://cloud.google.com/vertex-ai/generative-ai/docs/multimodal/configure-safety-filters#configurable-filters
         *
         * E.g.
         *
         * ```js
         * config: {
         *   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',
         *     },
         *   ],
         * }
         * ```
         */
        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">>;
        /**
         * Vertex retrieval options.
         *
         * E.g.
         *
         * ```js
         *   config: {
         *     vertexRetrieval: {
         *       datastore: {
         *         projectId: 'your-cloud-project',
         *         location: 'us-central1',
         *         collection: 'your-collection',
         *       },
         *       disableAttribution: true,
         *     }
         *   }
         * ```
         */
        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;
        }>>;
        /**
         * Google Search retrieval options.
         *
         * ```js
         *   config: {
         *     googleSearchRetrieval: {
         *       disableAttribution: true,
         *     }
         *   }
         * ```
         */
        googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            disableAttribution?: boolean | undefined;
        }, {
            disableAttribution?: boolean | undefined;
        }>>;
        /**
         * Function calling options.
         *
         * E.g. forced tool call:
         *
         * ```js
         *   config: {
         *     functionCallingConfig: {
         *       mode: 'ANY',
         *     }
         *   }
         * ```
         */
        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;
        }>>;
    }>, "passthrough", z.ZodTypeAny, z.objectOutputType<z.objectUtil.extendShape<{
        version: z.ZodOptional<z.ZodString>;
        temperature: z.ZodOptional<z.ZodNumber>;
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    }, {
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        temperature: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        location: z.ZodOptional<z.ZodString>;
        /**
         * Safety filter settings. See: https://cloud.google.com/vertex-ai/generative-ai/docs/multimodal/configure-safety-filters#configurable-filters
         *
         * E.g.
         *
         * ```js
         * config: {
         *   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',
         *     },
         *   ],
         * }
         * ```
         */
        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">>;
        /**
         * Vertex retrieval options.
         *
         * E.g.
         *
         * ```js
         *   config: {
         *     vertexRetrieval: {
         *       datastore: {
         *         projectId: 'your-cloud-project',
         *         location: 'us-central1',
         *         collection: 'your-collection',
         *       },
         *       disableAttribution: true,
         *     }
         *   }
         * ```
         */
        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;
        }>>;
        /**
         * Google Search retrieval options.
         *
         * ```js
         *   config: {
         *     googleSearchRetrieval: {
         *       disableAttribution: true,
         *     }
         *   }
         * ```
         */
        googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            disableAttribution?: boolean | undefined;
        }, {
            disableAttribution?: boolean | undefined;
        }>>;
        /**
         * Function calling options.
         *
         * E.g. forced tool call:
         *
         * ```js
         *   config: {
         *     functionCallingConfig: {
         *       mode: 'ANY',
         *     }
         *   }
         * ```
         */
        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;
        }>>;
    }>, z.ZodTypeAny, "passthrough">, z.objectInputType<z.objectUtil.extendShape<{
        version: z.ZodOptional<z.ZodString>;
        temperature: z.ZodOptional<z.ZodNumber>;
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    }, {
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        temperature: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        location: z.ZodOptional<z.ZodString>;
        /**
         * Safety filter settings. See: https://cloud.google.com/vertex-ai/generative-ai/docs/multimodal/configure-safety-filters#configurable-filters
         *
         * E.g.
         *
         * ```js
         * config: {
         *   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',
         *     },
         *   ],
         * }
         * ```
         */
        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">>;
        /**
         * Vertex retrieval options.
         *
         * E.g.
         *
         * ```js
         *   config: {
         *     vertexRetrieval: {
         *       datastore: {
         *         projectId: 'your-cloud-project',
         *         location: 'us-central1',
         *         collection: 'your-collection',
         *       },
         *       disableAttribution: true,
         *     }
         *   }
         * ```
         */
        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;
        }>>;
        /**
         * Google Search retrieval options.
         *
         * ```js
         *   config: {
         *     googleSearchRetrieval: {
         *       disableAttribution: true,
         *     }
         *   }
         * ```
         */
        googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            disableAttribution?: boolean | undefined;
        }, {
            disableAttribution?: boolean | undefined;
        }>>;
        /**
         * Function calling options.
         *
         * E.g. forced tool call:
         *
         * ```js
         *   config: {
         *     functionCallingConfig: {
         *       mode: 'ANY',
         *     }
         *   }
         * ```
         */
        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;
        }>>;
    }>, z.ZodTypeAny, "passthrough">>>;
    'gemini-1.5-flash': ModelReference<z.ZodObject<z.objectUtil.extendShape<{
        version: z.ZodOptional<z.ZodString>;
        temperature: z.ZodOptional<z.ZodNumber>;
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    }, {
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        temperature: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        location: z.ZodOptional<z.ZodString>;
        /**
         * Safety filter settings. See: https://cloud.google.com/vertex-ai/generative-ai/docs/multimodal/configure-safety-filters#configurable-filters
         *
         * E.g.
         *
         * ```js
         * config: {
         *   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',
         *     },
         *   ],
         * }
         * ```
         */
        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">>;
        /**
         * Vertex retrieval options.
         *
         * E.g.
         *
         * ```js
         *   config: {
         *     vertexRetrieval: {
         *       datastore: {
         *         projectId: 'your-cloud-project',
         *         location: 'us-central1',
         *         collection: 'your-collection',
         *       },
         *       disableAttribution: true,
         *     }
         *   }
         * ```
         */
        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;
        }>>;
        /**
         * Google Search retrieval options.
         *
         * ```js
         *   config: {
         *     googleSearchRetrieval: {
         *       disableAttribution: true,
         *     }
         *   }
         * ```
         */
        googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            disableAttribution?: boolean | undefined;
        }, {
            disableAttribution?: boolean | undefined;
        }>>;
        /**
         * Function calling options.
         *
         * E.g. forced tool call:
         *
         * ```js
         *   config: {
         *     functionCallingConfig: {
         *       mode: 'ANY',
         *     }
         *   }
         * ```
         */
        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;
        }>>;
    }>, "passthrough", z.ZodTypeAny, z.objectOutputType<z.objectUtil.extendShape<{
        version: z.ZodOptional<z.ZodString>;
        temperature: z.ZodOptional<z.ZodNumber>;
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    }, {
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        temperature: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        location: z.ZodOptional<z.ZodString>;
        /**
         * Safety filter settings. See: https://cloud.google.com/vertex-ai/generative-ai/docs/multimodal/configure-safety-filters#configurable-filters
         *
         * E.g.
         *
         * ```js
         * config: {
         *   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',
         *     },
         *   ],
         * }
         * ```
         */
        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">>;
        /**
         * Vertex retrieval options.
         *
         * E.g.
         *
         * ```js
         *   config: {
         *     vertexRetrieval: {
         *       datastore: {
         *         projectId: 'your-cloud-project',
         *         location: 'us-central1',
         *         collection: 'your-collection',
         *       },
         *       disableAttribution: true,
         *     }
         *   }
         * ```
         */
        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;
        }>>;
        /**
         * Google Search retrieval options.
         *
         * ```js
         *   config: {
         *     googleSearchRetrieval: {
         *       disableAttribution: true,
         *     }
         *   }
         * ```
         */
        googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            disableAttribution?: boolean | undefined;
        }, {
            disableAttribution?: boolean | undefined;
        }>>;
        /**
         * Function calling options.
         *
         * E.g. forced tool call:
         *
         * ```js
         *   config: {
         *     functionCallingConfig: {
         *       mode: 'ANY',
         *     }
         *   }
         * ```
         */
        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;
        }>>;
    }>, z.ZodTypeAny, "passthrough">, z.objectInputType<z.objectUtil.extendShape<{
        version: z.ZodOptional<z.ZodString>;
        temperature: z.ZodOptional<z.ZodNumber>;
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    }, {
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        temperature: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        location: z.ZodOptional<z.ZodString>;
        /**
         * Safety filter settings. See: https://cloud.google.com/vertex-ai/generative-ai/docs/multimodal/configure-safety-filters#configurable-filters
         *
         * E.g.
         *
         * ```js
         * config: {
         *   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',
         *     },
         *   ],
         * }
         * ```
         */
        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">>;
        /**
         * Vertex retrieval options.
         *
         * E.g.
         *
         * ```js
         *   config: {
         *     vertexRetrieval: {
         *       datastore: {
         *         projectId: 'your-cloud-project',
         *         location: 'us-central1',
         *         collection: 'your-collection',
         *       },
         *       disableAttribution: true,
         *     }
         *   }
         * ```
         */
        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;
        }>>;
        /**
         * Google Search retrieval options.
         *
         * ```js
         *   config: {
         *     googleSearchRetrieval: {
         *       disableAttribution: true,
         *     }
         *   }
         * ```
         */
        googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            disableAttribution?: boolean | undefined;
        }, {
            disableAttribution?: boolean | undefined;
        }>>;
        /**
         * Function calling options.
         *
         * E.g. forced tool call:
         *
         * ```js
         *   config: {
         *     functionCallingConfig: {
         *       mode: 'ANY',
         *     }
         *   }
         * ```
         */
        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;
        }>>;
    }>, z.ZodTypeAny, "passthrough">>>;
    'gemini-2.0-flash': ModelReference<z.ZodObject<z.objectUtil.extendShape<{
        version: z.ZodOptional<z.ZodString>;
        temperature: z.ZodOptional<z.ZodNumber>;
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    }, {
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        temperature: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        location: z.ZodOptional<z.ZodString>;
        /**
         * Safety filter settings. See: https://cloud.google.com/vertex-ai/generative-ai/docs/multimodal/configure-safety-filters#configurable-filters
         *
         * E.g.
         *
         * ```js
         * config: {
         *   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',
         *     },
         *   ],
         * }
         * ```
         */
        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">>;
        /**
         * Vertex retrieval options.
         *
         * E.g.
         *
         * ```js
         *   config: {
         *     vertexRetrieval: {
         *       datastore: {
         *         projectId: 'your-cloud-project',
         *         location: 'us-central1',
         *         collection: 'your-collection',
         *       },
         *       disableAttribution: true,
         *     }
         *   }
         * ```
         */
        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;
        }>>;
        /**
         * Google Search retrieval options.
         *
         * ```js
         *   config: {
         *     googleSearchRetrieval: {
         *       disableAttribution: true,
         *     }
         *   }
         * ```
         */
        googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            disableAttribution?: boolean | undefined;
        }, {
            disableAttribution?: boolean | undefined;
        }>>;
        /**
         * Function calling options.
         *
         * E.g. forced tool call:
         *
         * ```js
         *   config: {
         *     functionCallingConfig: {
         *       mode: 'ANY',
         *     }
         *   }
         * ```
         */
        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;
        }>>;
    }>, "passthrough", z.ZodTypeAny, z.objectOutputType<z.objectUtil.extendShape<{
        version: z.ZodOptional<z.ZodString>;
        temperature: z.ZodOptional<z.ZodNumber>;
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    }, {
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        temperature: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        location: z.ZodOptional<z.ZodString>;
        /**
         * Safety filter settings. See: https://cloud.google.com/vertex-ai/generative-ai/docs/multimodal/configure-safety-filters#configurable-filters
         *
         * E.g.
         *
         * ```js
         * config: {
         *   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',
         *     },
         *   ],
         * }
         * ```
         */
        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">>;
        /**
         * Vertex retrieval options.
         *
         * E.g.
         *
         * ```js
         *   config: {
         *     vertexRetrieval: {
         *       datastore: {
         *         projectId: 'your-cloud-project',
         *         location: 'us-central1',
         *         collection: 'your-collection',
         *       },
         *       disableAttribution: true,
         *     }
         *   }
         * ```
         */
        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;
        }>>;
        /**
         * Google Search retrieval options.
         *
         * ```js
         *   config: {
         *     googleSearchRetrieval: {
         *       disableAttribution: true,
         *     }
         *   }
         * ```
         */
        googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            disableAttribution?: boolean | undefined;
        }, {
            disableAttribution?: boolean | undefined;
        }>>;
        /**
         * Function calling options.
         *
         * E.g. forced tool call:
         *
         * ```js
         *   config: {
         *     functionCallingConfig: {
         *       mode: 'ANY',
         *     }
         *   }
         * ```
         */
        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;
        }>>;
    }>, z.ZodTypeAny, "passthrough">, z.objectInputType<z.objectUtil.extendShape<{
        version: z.ZodOptional<z.ZodString>;
        temperature: z.ZodOptional<z.ZodNumber>;
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    }, {
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        temperature: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        location: z.ZodOptional<z.ZodString>;
        /**
         * Safety filter settings. See: https://cloud.google.com/vertex-ai/generative-ai/docs/multimodal/configure-safety-filters#configurable-filters
         *
         * E.g.
         *
         * ```js
         * config: {
         *   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',
         *     },
         *   ],
         * }
         * ```
         */
        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">>;
        /**
         * Vertex retrieval options.
         *
         * E.g.
         *
         * ```js
         *   config: {
         *     vertexRetrieval: {
         *       datastore: {
         *         projectId: 'your-cloud-project',
         *         location: 'us-central1',
         *         collection: 'your-collection',
         *       },
         *       disableAttribution: true,
         *     }
         *   }
         * ```
         */
        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;
        }>>;
        /**
         * Google Search retrieval options.
         *
         * ```js
         *   config: {
         *     googleSearchRetrieval: {
         *       disableAttribution: true,
         *     }
         *   }
         * ```
         */
        googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            disableAttribution?: boolean | undefined;
        }, {
            disableAttribution?: boolean | undefined;
        }>>;
        /**
         * Function calling options.
         *
         * E.g. forced tool call:
         *
         * ```js
         *   config: {
         *     functionCallingConfig: {
         *       mode: 'ANY',
         *     }
         *   }
         * ```
         */
        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;
        }>>;
    }>, z.ZodTypeAny, "passthrough">>>;
    'gemini-2.0-flash-001': ModelReference<z.ZodObject<z.objectUtil.extendShape<{
        version: z.ZodOptional<z.ZodString>;
        temperature: z.ZodOptional<z.ZodNumber>;
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    }, {
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        temperature: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        location: z.ZodOptional<z.ZodString>;
        /**
         * Safety filter settings. See: https://cloud.google.com/vertex-ai/generative-ai/docs/multimodal/configure-safety-filters#configurable-filters
         *
         * E.g.
         *
         * ```js
         * config: {
         *   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',
         *     },
         *   ],
         * }
         * ```
         */
        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">>;
        /**
         * Vertex retrieval options.
         *
         * E.g.
         *
         * ```js
         *   config: {
         *     vertexRetrieval: {
         *       datastore: {
         *         projectId: 'your-cloud-project',
         *         location: 'us-central1',
         *         collection: 'your-collection',
         *       },
         *       disableAttribution: true,
         *     }
         *   }
         * ```
         */
        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;
        }>>;
        /**
         * Google Search retrieval options.
         *
         * ```js
         *   config: {
         *     googleSearchRetrieval: {
         *       disableAttribution: true,
         *     }
         *   }
         * ```
         */
        googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            disableAttribution?: boolean | undefined;
        }, {
            disableAttribution?: boolean | undefined;
        }>>;
        /**
         * Function calling options.
         *
         * E.g. forced tool call:
         *
         * ```js
         *   config: {
         *     functionCallingConfig: {
         *       mode: 'ANY',
         *     }
         *   }
         * ```
         */
        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;
        }>>;
    }>, "passthrough", z.ZodTypeAny, z.objectOutputType<z.objectUtil.extendShape<{
        version: z.ZodOptional<z.ZodString>;
        temperature: z.ZodOptional<z.ZodNumber>;
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    }, {
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        temperature: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        location: z.ZodOptional<z.ZodString>;
        /**
         * Safety filter settings. See: https://cloud.google.com/vertex-ai/generative-ai/docs/multimodal/configure-safety-filters#configurable-filters
         *
         * E.g.
         *
         * ```js
         * config: {
         *   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',
         *     },
         *   ],
         * }
         * ```
         */
        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">>;
        /**
         * Vertex retrieval options.
         *
         * E.g.
         *
         * ```js
         *   config: {
         *     vertexRetrieval: {
         *       datastore: {
         *         projectId: 'your-cloud-project',
         *         location: 'us-central1',
         *         collection: 'your-collection',
         *       },
         *       disableAttribution: true,
         *     }
         *   }
         * ```
         */
        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;
        }>>;
        /**
         * Google Search retrieval options.
         *
         * ```js
         *   config: {
         *     googleSearchRetrieval: {
         *       disableAttribution: true,
         *     }
         *   }
         * ```
         */
        googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            disableAttribution?: boolean | undefined;
        }, {
            disableAttribution?: boolean | undefined;
        }>>;
        /**
         * Function calling options.
         *
         * E.g. forced tool call:
         *
         * ```js
         *   config: {
         *     functionCallingConfig: {
         *       mode: 'ANY',
         *     }
         *   }
         * ```
         */
        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;
        }>>;
    }>, z.ZodTypeAny, "passthrough">, z.objectInputType<z.objectUtil.extendShape<{
        version: z.ZodOptional<z.ZodString>;
        temperature: z.ZodOptional<z.ZodNumber>;
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    }, {
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        temperature: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        location: z.ZodOptional<z.ZodString>;
        /**
         * Safety filter settings. See: https://cloud.google.com/vertex-ai/generative-ai/docs/multimodal/configure-safety-filters#configurable-filters
         *
         * E.g.
         *
         * ```js
         * config: {
         *   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',
         *     },
         *   ],
         * }
         * ```
         */
        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">>;
        /**
         * Vertex retrieval options.
         *
         * E.g.
         *
         * ```js
         *   config: {
         *     vertexRetrieval: {
         *       datastore: {
         *         projectId: 'your-cloud-project',
         *         location: 'us-central1',
         *         collection: 'your-collection',
         *       },
         *       disableAttribution: true,
         *     }
         *   }
         * ```
         */
        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;
        }>>;
        /**
         * Google Search retrieval options.
         *
         * ```js
         *   config: {
         *     googleSearchRetrieval: {
         *       disableAttribution: true,
         *     }
         *   }
         * ```
         */
        googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            disableAttribution?: boolean | undefined;
        }, {
            disableAttribution?: boolean | undefined;
        }>>;
        /**
         * Function calling options.
         *
         * E.g. forced tool call:
         *
         * ```js
         *   config: {
         *     functionCallingConfig: {
         *       mode: 'ANY',
         *     }
         *   }
         * ```
         */
        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;
        }>>;
    }>, z.ZodTypeAny, "passthrough">>>;
    'gemini-2.0-flash-lite': ModelReference<z.ZodObject<z.objectUtil.extendShape<{
        version: z.ZodOptional<z.ZodString>;
        temperature: z.ZodOptional<z.ZodNumber>;
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    }, {
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        temperature: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        location: z.ZodOptional<z.ZodString>;
        /**
         * Safety filter settings. See: https://cloud.google.com/vertex-ai/generative-ai/docs/multimodal/configure-safety-filters#configurable-filters
         *
         * E.g.
         *
         * ```js
         * config: {
         *   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',
         *     },
         *   ],
         * }
         * ```
         */
        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">>;
        /**
         * Vertex retrieval options.
         *
         * E.g.
         *
         * ```js
         *   config: {
         *     vertexRetrieval: {
         *       datastore: {
         *         projectId: 'your-cloud-project',
         *         location: 'us-central1',
         *         collection: 'your-collection',
         *       },
         *       disableAttribution: true,
         *     }
         *   }
         * ```
         */
        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;
        }>>;
        /**
         * Google Search retrieval options.
         *
         * ```js
         *   config: {
         *     googleSearchRetrieval: {
         *       disableAttribution: true,
         *     }
         *   }
         * ```
         */
        googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            disableAttribution?: boolean | undefined;
        }, {
            disableAttribution?: boolean | undefined;
        }>>;
        /**
         * Function calling options.
         *
         * E.g. forced tool call:
         *
         * ```js
         *   config: {
         *     functionCallingConfig: {
         *       mode: 'ANY',
         *     }
         *   }
         * ```
         */
        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;
        }>>;
    }>, "passthrough", z.ZodTypeAny, z.objectOutputType<z.objectUtil.extendShape<{
        version: z.ZodOptional<z.ZodString>;
        temperature: z.ZodOptional<z.ZodNumber>;
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    }, {
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        temperature: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        location: z.ZodOptional<z.ZodString>;
        /**
         * Safety filter settings. See: https://cloud.google.com/vertex-ai/generative-ai/docs/multimodal/configure-safety-filters#configurable-filters
         *
         * E.g.
         *
         * ```js
         * config: {
         *   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',
         *     },
         *   ],
         * }
         * ```
         */
        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">>;
        /**
         * Vertex retrieval options.
         *
         * E.g.
         *
         * ```js
         *   config: {
         *     vertexRetrieval: {
         *       datastore: {
         *         projectId: 'your-cloud-project',
         *         location: 'us-central1',
         *         collection: 'your-collection',
         *       },
         *       disableAttribution: true,
         *     }
         *   }
         * ```
         */
        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;
        }>>;
        /**
         * Google Search retrieval options.
         *
         * ```js
         *   config: {
         *     googleSearchRetrieval: {
         *       disableAttribution: true,
         *     }
         *   }
         * ```
         */
        googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            disableAttribution?: boolean | undefined;
        }, {
            disableAttribution?: boolean | undefined;
        }>>;
        /**
         * Function calling options.
         *
         * E.g. forced tool call:
         *
         * ```js
         *   config: {
         *     functionCallingConfig: {
         *       mode: 'ANY',
         *     }
         *   }
         * ```
         */
        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;
        }>>;
    }>, z.ZodTypeAny, "passthrough">, z.objectInputType<z.objectUtil.extendShape<{
        version: z.ZodOptional<z.ZodString>;
        temperature: z.ZodOptional<z.ZodNumber>;
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    }, {
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        temperature: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        location: z.ZodOptional<z.ZodString>;
        /**
         * Safety filter settings. See: https://cloud.google.com/vertex-ai/generative-ai/docs/multimodal/configure-safety-filters#configurable-filters
         *
         * E.g.
         *
         * ```js
         * config: {
         *   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',
         *     },
         *   ],
         * }
         * ```
         */
        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">>;
        /**
         * Vertex retrieval options.
         *
         * E.g.
         *
         * ```js
         *   config: {
         *     vertexRetrieval: {
         *       datastore: {
         *         projectId: 'your-cloud-project',
         *         location: 'us-central1',
         *         collection: 'your-collection',
         *       },
         *       disableAttribution: true,
         *     }
         *   }
         * ```
         */
        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;
        }>>;
        /**
         * Google Search retrieval options.
         *
         * ```js
         *   config: {
         *     googleSearchRetrieval: {
         *       disableAttribution: true,
         *     }
         *   }
         * ```
         */
        googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            disableAttribution?: boolean | undefined;
        }, {
            disableAttribution?: boolean | undefined;
        }>>;
        /**
         * Function calling options.
         *
         * E.g. forced tool call:
         *
         * ```js
         *   config: {
         *     functionCallingConfig: {
         *       mode: 'ANY',
         *     }
         *   }
         * ```
         */
        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;
        }>>;
    }>, z.ZodTypeAny, "passthrough">>>;
    'gemini-2.0-flash-lite-preview-02-05': ModelReference<z.ZodObject<z.objectUtil.extendShape<{
        version: z.ZodOptional<z.ZodString>;
        temperature: z.ZodOptional<z.ZodNumber>;
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    }, {
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        temperature: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        location: z.ZodOptional<z.ZodString>;
        /**
         * Safety filter settings. See: https://cloud.google.com/vertex-ai/generative-ai/docs/multimodal/configure-safety-filters#configurable-filters
         *
         * E.g.
         *
         * ```js
         * config: {
         *   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',
         *     },
         *   ],
         * }
         * ```
         */
        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">>;
        /**
         * Vertex retrieval options.
         *
         * E.g.
         *
         * ```js
         *   config: {
         *     vertexRetrieval: {
         *       datastore: {
         *         projectId: 'your-cloud-project',
         *         location: 'us-central1',
         *         collection: 'your-collection',
         *       },
         *       disableAttribution: true,
         *     }
         *   }
         * ```
         */
        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;
        }>>;
        /**
         * Google Search retrieval options.
         *
         * ```js
         *   config: {
         *     googleSearchRetrieval: {
         *       disableAttribution: true,
         *     }
         *   }
         * ```
         */
        googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            disableAttribution?: boolean | undefined;
        }, {
            disableAttribution?: boolean | undefined;
        }>>;
        /**
         * Function calling options.
         *
         * E.g. forced tool call:
         *
         * ```js
         *   config: {
         *     functionCallingConfig: {
         *       mode: 'ANY',
         *     }
         *   }
         * ```
         */
        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;
        }>>;
    }>, "passthrough", z.ZodTypeAny, z.objectOutputType<z.objectUtil.extendShape<{
        version: z.ZodOptional<z.ZodString>;
        temperature: z.ZodOptional<z.ZodNumber>;
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    }, {
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        temperature: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        location: z.ZodOptional<z.ZodString>;
        /**
         * Safety filter settings. See: https://cloud.google.com/vertex-ai/generative-ai/docs/multimodal/configure-safety-filters#configurable-filters
         *
         * E.g.
         *
         * ```js
         * config: {
         *   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',
         *     },
         *   ],
         * }
         * ```
         */
        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">>;
        /**
         * Vertex retrieval options.
         *
         * E.g.
         *
         * ```js
         *   config: {
         *     vertexRetrieval: {
         *       datastore: {
         *         projectId: 'your-cloud-project',
         *         location: 'us-central1',
         *         collection: 'your-collection',
         *       },
         *       disableAttribution: true,
         *     }
         *   }
         * ```
         */
        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;
        }>>;
        /**
         * Google Search retrieval options.
         *
         * ```js
         *   config: {
         *     googleSearchRetrieval: {
         *       disableAttribution: true,
         *     }
         *   }
         * ```
         */
        googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            disableAttribution?: boolean | undefined;
        }, {
            disableAttribution?: boolean | undefined;
        }>>;
        /**
         * Function calling options.
         *
         * E.g. forced tool call:
         *
         * ```js
         *   config: {
         *     functionCallingConfig: {
         *       mode: 'ANY',
         *     }
         *   }
         * ```
         */
        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;
        }>>;
    }>, z.ZodTypeAny, "passthrough">, z.objectInputType<z.objectUtil.extendShape<{
        version: z.ZodOptional<z.ZodString>;
        temperature: z.ZodOptional<z.ZodNumber>;
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    }, {
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        temperature: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        location: z.ZodOptional<z.ZodString>;
        /**
         * Safety filter settings. See: https://cloud.google.com/vertex-ai/generative-ai/docs/multimodal/configure-safety-filters#configurable-filters
         *
         * E.g.
         *
         * ```js
         * config: {
         *   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',
         *     },
         *   ],
         * }
         * ```
         */
        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">>;
        /**
         * Vertex retrieval options.
         *
         * E.g.
         *
         * ```js
         *   config: {
         *     vertexRetrieval: {
         *       datastore: {
         *         projectId: 'your-cloud-project',
         *         location: 'us-central1',
         *         collection: 'your-collection',
         *       },
         *       disableAttribution: true,
         *     }
         *   }
         * ```
         */
        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;
        }>>;
        /**
         * Google Search retrieval options.
         *
         * ```js
         *   config: {
         *     googleSearchRetrieval: {
         *       disableAttribution: true,
         *     }
         *   }
         * ```
         */
        googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            disableAttribution?: boolean | undefined;
        }, {
            disableAttribution?: boolean | undefined;
        }>>;
        /**
         * Function calling options.
         *
         * E.g. forced tool call:
         *
         * ```js
         *   config: {
         *     functionCallingConfig: {
         *       mode: 'ANY',
         *     }
         *   }
         * ```
         */
        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;
        }>>;
    }>, z.ZodTypeAny, "passthrough">>>;
    'gemini-2.0-pro-exp-02-05': ModelReference<z.ZodObject<z.objectUtil.extendShape<{
        version: z.ZodOptional<z.ZodString>;
        temperature: z.ZodOptional<z.ZodNumber>;
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    }, {
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        temperature: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        location: z.ZodOptional<z.ZodString>;
        /**
         * Safety filter settings. See: https://cloud.google.com/vertex-ai/generative-ai/docs/multimodal/configure-safety-filters#configurable-filters
         *
         * E.g.
         *
         * ```js
         * config: {
         *   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',
         *     },
         *   ],
         * }
         * ```
         */
        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">>;
        /**
         * Vertex retrieval options.
         *
         * E.g.
         *
         * ```js
         *   config: {
         *     vertexRetrieval: {
         *       datastore: {
         *         projectId: 'your-cloud-project',
         *         location: 'us-central1',
         *         collection: 'your-collection',
         *       },
         *       disableAttribution: true,
         *     }
         *   }
         * ```
         */
        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;
        }>>;
        /**
         * Google Search retrieval options.
         *
         * ```js
         *   config: {
         *     googleSearchRetrieval: {
         *       disableAttribution: true,
         *     }
         *   }
         * ```
         */
        googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            disableAttribution?: boolean | undefined;
        }, {
            disableAttribution?: boolean | undefined;
        }>>;
        /**
         * Function calling options.
         *
         * E.g. forced tool call:
         *
         * ```js
         *   config: {
         *     functionCallingConfig: {
         *       mode: 'ANY',
         *     }
         *   }
         * ```
         */
        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;
        }>>;
    }>, "passthrough", z.ZodTypeAny, z.objectOutputType<z.objectUtil.extendShape<{
        version: z.ZodOptional<z.ZodString>;
        temperature: z.ZodOptional<z.ZodNumber>;
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    }, {
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        temperature: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        location: z.ZodOptional<z.ZodString>;
        /**
         * Safety filter settings. See: https://cloud.google.com/vertex-ai/generative-ai/docs/multimodal/configure-safety-filters#configurable-filters
         *
         * E.g.
         *
         * ```js
         * config: {
         *   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',
         *     },
         *   ],
         * }
         * ```
         */
        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">>;
        /**
         * Vertex retrieval options.
         *
         * E.g.
         *
         * ```js
         *   config: {
         *     vertexRetrieval: {
         *       datastore: {
         *         projectId: 'your-cloud-project',
         *         location: 'us-central1',
         *         collection: 'your-collection',
         *       },
         *       disableAttribution: true,
         *     }
         *   }
         * ```
         */
        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;
        }>>;
        /**
         * Google Search retrieval options.
         *
         * ```js
         *   config: {
         *     googleSearchRetrieval: {
         *       disableAttribution: true,
         *     }
         *   }
         * ```
         */
        googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            disableAttribution?: boolean | undefined;
        }, {
            disableAttribution?: boolean | undefined;
        }>>;
        /**
         * Function calling options.
         *
         * E.g. forced tool call:
         *
         * ```js
         *   config: {
         *     functionCallingConfig: {
         *       mode: 'ANY',
         *     }
         *   }
         * ```
         */
        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;
        }>>;
    }>, z.ZodTypeAny, "passthrough">, z.objectInputType<z.objectUtil.extendShape<{
        version: z.ZodOptional<z.ZodString>;
        temperature: z.ZodOptional<z.ZodNumber>;
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    }, {
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        temperature: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        location: z.ZodOptional<z.ZodString>;
        /**
         * Safety filter settings. See: https://cloud.google.com/vertex-ai/generative-ai/docs/multimodal/configure-safety-filters#configurable-filters
         *
         * E.g.
         *
         * ```js
         * config: {
         *   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',
         *     },
         *   ],
         * }
         * ```
         */
        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">>;
        /**
         * Vertex retrieval options.
         *
         * E.g.
         *
         * ```js
         *   config: {
         *     vertexRetrieval: {
         *       datastore: {
         *         projectId: 'your-cloud-project',
         *         location: 'us-central1',
         *         collection: 'your-collection',
         *       },
         *       disableAttribution: true,
         *     }
         *   }
         * ```
         */
        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;
        }>>;
        /**
         * Google Search retrieval options.
         *
         * ```js
         *   config: {
         *     googleSearchRetrieval: {
         *       disableAttribution: true,
         *     }
         *   }
         * ```
         */
        googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            disableAttribution?: boolean | undefined;
        }, {
            disableAttribution?: boolean | undefined;
        }>>;
        /**
         * Function calling options.
         *
         * E.g. forced tool call:
         *
         * ```js
         *   config: {
         *     functionCallingConfig: {
         *       mode: 'ANY',
         *     }
         *   }
         * ```
         */
        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;
        }>>;
    }>, z.ZodTypeAny, "passthrough">>>;
    'gemini-2.5-pro-exp-03-25': ModelReference<z.ZodObject<z.objectUtil.extendShape<{
        version: z.ZodOptional<z.ZodString>;
        temperature: z.ZodOptional<z.ZodNumber>;
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    }, {
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        temperature: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        location: z.ZodOptional<z.ZodString>;
        /**
         * Safety filter settings. See: https://cloud.google.com/vertex-ai/generative-ai/docs/multimodal/configure-safety-filters#configurable-filters
         *
         * E.g.
         *
         * ```js
         * config: {
         *   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',
         *     },
         *   ],
         * }
         * ```
         */
        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">>;
        /**
         * Vertex retrieval options.
         *
         * E.g.
         *
         * ```js
         *   config: {
         *     vertexRetrieval: {
         *       datastore: {
         *         projectId: 'your-cloud-project',
         *         location: 'us-central1',
         *         collection: 'your-collection',
         *       },
         *       disableAttribution: true,
         *     }
         *   }
         * ```
         */
        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;
        }>>;
        /**
         * Google Search retrieval options.
         *
         * ```js
         *   config: {
         *     googleSearchRetrieval: {
         *       disableAttribution: true,
         *     }
         *   }
         * ```
         */
        googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            disableAttribution?: boolean | undefined;
        }, {
            disableAttribution?: boolean | undefined;
        }>>;
        /**
         * Function calling options.
         *
         * E.g. forced tool call:
         *
         * ```js
         *   config: {
         *     functionCallingConfig: {
         *       mode: 'ANY',
         *     }
         *   }
         * ```
         */
        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;
        }>>;
    }>, "passthrough", z.ZodTypeAny, z.objectOutputType<z.objectUtil.extendShape<{
        version: z.ZodOptional<z.ZodString>;
        temperature: z.ZodOptional<z.ZodNumber>;
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    }, {
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        temperature: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        location: z.ZodOptional<z.ZodString>;
        /**
         * Safety filter settings. See: https://cloud.google.com/vertex-ai/generative-ai/docs/multimodal/configure-safety-filters#configurable-filters
         *
         * E.g.
         *
         * ```js
         * config: {
         *   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',
         *     },
         *   ],
         * }
         * ```
         */
        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">>;
        /**
         * Vertex retrieval options.
         *
         * E.g.
         *
         * ```js
         *   config: {
         *     vertexRetrieval: {
         *       datastore: {
         *         projectId: 'your-cloud-project',
         *         location: 'us-central1',
         *         collection: 'your-collection',
         *       },
         *       disableAttribution: true,
         *     }
         *   }
         * ```
         */
        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;
        }>>;
        /**
         * Google Search retrieval options.
         *
         * ```js
         *   config: {
         *     googleSearchRetrieval: {
         *       disableAttribution: true,
         *     }
         *   }
         * ```
         */
        googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            disableAttribution?: boolean | undefined;
        }, {
            disableAttribution?: boolean | undefined;
        }>>;
        /**
         * Function calling options.
         *
         * E.g. forced tool call:
         *
         * ```js
         *   config: {
         *     functionCallingConfig: {
         *       mode: 'ANY',
         *     }
         *   }
         * ```
         */
        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;
        }>>;
    }>, z.ZodTypeAny, "passthrough">, z.objectInputType<z.objectUtil.extendShape<{
        version: z.ZodOptional<z.ZodString>;
        temperature: z.ZodOptional<z.ZodNumber>;
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    }, {
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        temperature: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        location: z.ZodOptional<z.ZodString>;
        /**
         * Safety filter settings. See: https://cloud.google.com/vertex-ai/generative-ai/docs/multimodal/configure-safety-filters#configurable-filters
         *
         * E.g.
         *
         * ```js
         * config: {
         *   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',
         *     },
         *   ],
         * }
         * ```
         */
        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">>;
        /**
         * Vertex retrieval options.
         *
         * E.g.
         *
         * ```js
         *   config: {
         *     vertexRetrieval: {
         *       datastore: {
         *         projectId: 'your-cloud-project',
         *         location: 'us-central1',
         *         collection: 'your-collection',
         *       },
         *       disableAttribution: true,
         *     }
         *   }
         * ```
         */
        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;
        }>>;
        /**
         * Google Search retrieval options.
         *
         * ```js
         *   config: {
         *     googleSearchRetrieval: {
         *       disableAttribution: true,
         *     }
         *   }
         * ```
         */
        googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            disableAttribution?: boolean | undefined;
        }, {
            disableAttribution?: boolean | undefined;
        }>>;
        /**
         * Function calling options.
         *
         * E.g. forced tool call:
         *
         * ```js
         *   config: {
         *     functionCallingConfig: {
         *       mode: 'ANY',
         *     }
         *   }
         * ```
         */
        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;
        }>>;
    }>, z.ZodTypeAny, "passthrough">>>;
    'gemini-2.5-pro-preview-03-25': ModelReference<z.ZodObject<z.objectUtil.extendShape<{
        version: z.ZodOptional<z.ZodString>;
        temperature: z.ZodOptional<z.ZodNumber>;
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    }, {
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        temperature: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        location: z.ZodOptional<z.ZodString>;
        /**
         * Safety filter settings. See: https://cloud.google.com/vertex-ai/generative-ai/docs/multimodal/configure-safety-filters#configurable-filters
         *
         * E.g.
         *
         * ```js
         * config: {
         *   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',
         *     },
         *   ],
         * }
         * ```
         */
        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">>;
        /**
         * Vertex retrieval options.
         *
         * E.g.
         *
         * ```js
         *   config: {
         *     vertexRetrieval: {
         *       datastore: {
         *         projectId: 'your-cloud-project',
         *         location: 'us-central1',
         *         collection: 'your-collection',
         *       },
         *       disableAttribution: true,
         *     }
         *   }
         * ```
         */
        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;
        }>>;
        /**
         * Google Search retrieval options.
         *
         * ```js
         *   config: {
         *     googleSearchRetrieval: {
         *       disableAttribution: true,
         *     }
         *   }
         * ```
         */
        googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            disableAttribution?: boolean | undefined;
        }, {
            disableAttribution?: boolean | undefined;
        }>>;
        /**
         * Function calling options.
         *
         * E.g. forced tool call:
         *
         * ```js
         *   config: {
         *     functionCallingConfig: {
         *       mode: 'ANY',
         *     }
         *   }
         * ```
         */
        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;
        }>>;
    }>, "passthrough", z.ZodTypeAny, z.objectOutputType<z.objectUtil.extendShape<{
        version: z.ZodOptional<z.ZodString>;
        temperature: z.ZodOptional<z.ZodNumber>;
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    }, {
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        temperature: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        location: z.ZodOptional<z.ZodString>;
        /**
         * Safety filter settings. See: https://cloud.google.com/vertex-ai/generative-ai/docs/multimodal/configure-safety-filters#configurable-filters
         *
         * E.g.
         *
         * ```js
         * config: {
         *   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',
         *     },
         *   ],
         * }
         * ```
         */
        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">>;
        /**
         * Vertex retrieval options.
         *
         * E.g.
         *
         * ```js
         *   config: {
         *     vertexRetrieval: {
         *       datastore: {
         *         projectId: 'your-cloud-project',
         *         location: 'us-central1',
         *         collection: 'your-collection',
         *       },
         *       disableAttribution: true,
         *     }
         *   }
         * ```
         */
        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;
        }>>;
        /**
         * Google Search retrieval options.
         *
         * ```js
         *   config: {
         *     googleSearchRetrieval: {
         *       disableAttribution: true,
         *     }
         *   }
         * ```
         */
        googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            disableAttribution?: boolean | undefined;
        }, {
            disableAttribution?: boolean | undefined;
        }>>;
        /**
         * Function calling options.
         *
         * E.g. forced tool call:
         *
         * ```js
         *   config: {
         *     functionCallingConfig: {
         *       mode: 'ANY',
         *     }
         *   }
         * ```
         */
        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;
        }>>;
    }>, z.ZodTypeAny, "passthrough">, z.objectInputType<z.objectUtil.extendShape<{
        version: z.ZodOptional<z.ZodString>;
        temperature: z.ZodOptional<z.ZodNumber>;
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    }, {
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        temperature: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        location: z.ZodOptional<z.ZodString>;
        /**
         * Safety filter settings. See: https://cloud.google.com/vertex-ai/generative-ai/docs/multimodal/configure-safety-filters#configurable-filters
         *
         * E.g.
         *
         * ```js
         * config: {
         *   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',
         *     },
         *   ],
         * }
         * ```
         */
        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">>;
        /**
         * Vertex retrieval options.
         *
         * E.g.
         *
         * ```js
         *   config: {
         *     vertexRetrieval: {
         *       datastore: {
         *         projectId: 'your-cloud-project',
         *         location: 'us-central1',
         *         collection: 'your-collection',
         *       },
         *       disableAttribution: true,
         *     }
         *   }
         * ```
         */
        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;
        }>>;
        /**
         * Google Search retrieval options.
         *
         * ```js
         *   config: {
         *     googleSearchRetrieval: {
         *       disableAttribution: true,
         *     }
         *   }
         * ```
         */
        googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            disableAttribution?: boolean | undefined;
        }, {
            disableAttribution?: boolean | undefined;
        }>>;
        /**
         * Function calling options.
         *
         * E.g. forced tool call:
         *
         * ```js
         *   config: {
         *     functionCallingConfig: {
         *       mode: 'ANY',
         *     }
         *   }
         * ```
         */
        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;
        }>>;
    }>, z.ZodTypeAny, "passthrough">>>;
    'gemini-2.5-flash-preview-04-17': ModelReference<z.ZodObject<z.objectUtil.extendShape<{
        version: z.ZodOptional<z.ZodString>;
        temperature: z.ZodOptional<z.ZodNumber>;
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    }, {
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        temperature: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        location: z.ZodOptional<z.ZodString>;
        /**
         * Safety filter settings. See: https://cloud.google.com/vertex-ai/generative-ai/docs/multimodal/configure-safety-filters#configurable-filters
         *
         * E.g.
         *
         * ```js
         * config: {
         *   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',
         *     },
         *   ],
         * }
         * ```
         */
        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">>;
        /**
         * Vertex retrieval options.
         *
         * E.g.
         *
         * ```js
         *   config: {
         *     vertexRetrieval: {
         *       datastore: {
         *         projectId: 'your-cloud-project',
         *         location: 'us-central1',
         *         collection: 'your-collection',
         *       },
         *       disableAttribution: true,
         *     }
         *   }
         * ```
         */
        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;
        }>>;
        /**
         * Google Search retrieval options.
         *
         * ```js
         *   config: {
         *     googleSearchRetrieval: {
         *       disableAttribution: true,
         *     }
         *   }
         * ```
         */
        googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            disableAttribution?: boolean | undefined;
        }, {
            disableAttribution?: boolean | undefined;
        }>>;
        /**
         * Function calling options.
         *
         * E.g. forced tool call:
         *
         * ```js
         *   config: {
         *     functionCallingConfig: {
         *       mode: 'ANY',
         *     }
         *   }
         * ```
         */
        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;
        }>>;
    }>, "passthrough", z.ZodTypeAny, z.objectOutputType<z.objectUtil.extendShape<{
        version: z.ZodOptional<z.ZodString>;
        temperature: z.ZodOptional<z.ZodNumber>;
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    }, {
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        temperature: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        location: z.ZodOptional<z.ZodString>;
        /**
         * Safety filter settings. See: https://cloud.google.com/vertex-ai/generative-ai/docs/multimodal/configure-safety-filters#configurable-filters
         *
         * E.g.
         *
         * ```js
         * config: {
         *   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',
         *     },
         *   ],
         * }
         * ```
         */
        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">>;
        /**
         * Vertex retrieval options.
         *
         * E.g.
         *
         * ```js
         *   config: {
         *     vertexRetrieval: {
         *       datastore: {
         *         projectId: 'your-cloud-project',
         *         location: 'us-central1',
         *         collection: 'your-collection',
         *       },
         *       disableAttribution: true,
         *     }
         *   }
         * ```
         */
        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;
        }>>;
        /**
         * Google Search retrieval options.
         *
         * ```js
         *   config: {
         *     googleSearchRetrieval: {
         *       disableAttribution: true,
         *     }
         *   }
         * ```
         */
        googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            disableAttribution?: boolean | undefined;
        }, {
            disableAttribution?: boolean | undefined;
        }>>;
        /**
         * Function calling options.
         *
         * E.g. forced tool call:
         *
         * ```js
         *   config: {
         *     functionCallingConfig: {
         *       mode: 'ANY',
         *     }
         *   }
         * ```
         */
        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;
        }>>;
    }>, z.ZodTypeAny, "passthrough">, z.objectInputType<z.objectUtil.extendShape<{
        version: z.ZodOptional<z.ZodString>;
        temperature: z.ZodOptional<z.ZodNumber>;
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    }, {
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        temperature: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        location: z.ZodOptional<z.ZodString>;
        /**
         * Safety filter settings. See: https://cloud.google.com/vertex-ai/generative-ai/docs/multimodal/configure-safety-filters#configurable-filters
         *
         * E.g.
         *
         * ```js
         * config: {
         *   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',
         *     },
         *   ],
         * }
         * ```
         */
        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">>;
        /**
         * Vertex retrieval options.
         *
         * E.g.
         *
         * ```js
         *   config: {
         *     vertexRetrieval: {
         *       datastore: {
         *         projectId: 'your-cloud-project',
         *         location: 'us-central1',
         *         collection: 'your-collection',
         *       },
         *       disableAttribution: true,
         *     }
         *   }
         * ```
         */
        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;
        }>>;
        /**
         * Google Search retrieval options.
         *
         * ```js
         *   config: {
         *     googleSearchRetrieval: {
         *       disableAttribution: true,
         *     }
         *   }
         * ```
         */
        googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            disableAttribution?: boolean | undefined;
        }, {
            disableAttribution?: boolean | undefined;
        }>>;
        /**
         * Function calling options.
         *
         * E.g. forced tool call:
         *
         * ```js
         *   config: {
         *     functionCallingConfig: {
         *       mode: 'ANY',
         *     }
         *   }
         * ```
         */
        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;
        }>>;
    }>, z.ZodTypeAny, "passthrough">>>;
};
declare const SUPPORTED_GEMINI_MODELS: {
    readonly 'gemini-1.5-pro': ModelReference<z.ZodObject<z.objectUtil.extendShape<{
        version: z.ZodOptional<z.ZodString>;
        temperature: z.ZodOptional<z.ZodNumber>;
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    }, {
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        temperature: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        location: z.ZodOptional<z.ZodString>;
        /**
         * Safety filter settings. See: https://cloud.google.com/vertex-ai/generative-ai/docs/multimodal/configure-safety-filters#configurable-filters
         *
         * E.g.
         *
         * ```js
         * config: {
         *   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',
         *     },
         *   ],
         * }
         * ```
         */
        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">>;
        /**
         * Vertex retrieval options.
         *
         * E.g.
         *
         * ```js
         *   config: {
         *     vertexRetrieval: {
         *       datastore: {
         *         projectId: 'your-cloud-project',
         *         location: 'us-central1',
         *         collection: 'your-collection',
         *       },
         *       disableAttribution: true,
         *     }
         *   }
         * ```
         */
        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;
        }>>;
        /**
         * Google Search retrieval options.
         *
         * ```js
         *   config: {
         *     googleSearchRetrieval: {
         *       disableAttribution: true,
         *     }
         *   }
         * ```
         */
        googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            disableAttribution?: boolean | undefined;
        }, {
            disableAttribution?: boolean | undefined;
        }>>;
        /**
         * Function calling options.
         *
         * E.g. forced tool call:
         *
         * ```js
         *   config: {
         *     functionCallingConfig: {
         *       mode: 'ANY',
         *     }
         *   }
         * ```
         */
        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;
        }>>;
    }>, "passthrough", z.ZodTypeAny, z.objectOutputType<z.objectUtil.extendShape<{
        version: z.ZodOptional<z.ZodString>;
        temperature: z.ZodOptional<z.ZodNumber>;
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    }, {
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        temperature: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        location: z.ZodOptional<z.ZodString>;
        /**
         * Safety filter settings. See: https://cloud.google.com/vertex-ai/generative-ai/docs/multimodal/configure-safety-filters#configurable-filters
         *
         * E.g.
         *
         * ```js
         * config: {
         *   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',
         *     },
         *   ],
         * }
         * ```
         */
        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">>;
        /**
         * Vertex retrieval options.
         *
         * E.g.
         *
         * ```js
         *   config: {
         *     vertexRetrieval: {
         *       datastore: {
         *         projectId: 'your-cloud-project',
         *         location: 'us-central1',
         *         collection: 'your-collection',
         *       },
         *       disableAttribution: true,
         *     }
         *   }
         * ```
         */
        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;
        }>>;
        /**
         * Google Search retrieval options.
         *
         * ```js
         *   config: {
         *     googleSearchRetrieval: {
         *       disableAttribution: true,
         *     }
         *   }
         * ```
         */
        googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            disableAttribution?: boolean | undefined;
        }, {
            disableAttribution?: boolean | undefined;
        }>>;
        /**
         * Function calling options.
         *
         * E.g. forced tool call:
         *
         * ```js
         *   config: {
         *     functionCallingConfig: {
         *       mode: 'ANY',
         *     }
         *   }
         * ```
         */
        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;
        }>>;
    }>, z.ZodTypeAny, "passthrough">, z.objectInputType<z.objectUtil.extendShape<{
        version: z.ZodOptional<z.ZodString>;
        temperature: z.ZodOptional<z.ZodNumber>;
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    }, {
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        temperature: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        location: z.ZodOptional<z.ZodString>;
        /**
         * Safety filter settings. See: https://cloud.google.com/vertex-ai/generative-ai/docs/multimodal/configure-safety-filters#configurable-filters
         *
         * E.g.
         *
         * ```js
         * config: {
         *   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',
         *     },
         *   ],
         * }
         * ```
         */
        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">>;
        /**
         * Vertex retrieval options.
         *
         * E.g.
         *
         * ```js
         *   config: {
         *     vertexRetrieval: {
         *       datastore: {
         *         projectId: 'your-cloud-project',
         *         location: 'us-central1',
         *         collection: 'your-collection',
         *       },
         *       disableAttribution: true,
         *     }
         *   }
         * ```
         */
        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;
        }>>;
        /**
         * Google Search retrieval options.
         *
         * ```js
         *   config: {
         *     googleSearchRetrieval: {
         *       disableAttribution: true,
         *     }
         *   }
         * ```
         */
        googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            disableAttribution?: boolean | undefined;
        }, {
            disableAttribution?: boolean | undefined;
        }>>;
        /**
         * Function calling options.
         *
         * E.g. forced tool call:
         *
         * ```js
         *   config: {
         *     functionCallingConfig: {
         *       mode: 'ANY',
         *     }
         *   }
         * ```
         */
        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;
        }>>;
    }>, z.ZodTypeAny, "passthrough">>>;
    readonly 'gemini-1.5-flash': ModelReference<z.ZodObject<z.objectUtil.extendShape<{
        version: z.ZodOptional<z.ZodString>;
        temperature: z.ZodOptional<z.ZodNumber>;
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    }, {
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        temperature: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        location: z.ZodOptional<z.ZodString>;
        /**
         * Safety filter settings. See: https://cloud.google.com/vertex-ai/generative-ai/docs/multimodal/configure-safety-filters#configurable-filters
         *
         * E.g.
         *
         * ```js
         * config: {
         *   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',
         *     },
         *   ],
         * }
         * ```
         */
        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">>;
        /**
         * Vertex retrieval options.
         *
         * E.g.
         *
         * ```js
         *   config: {
         *     vertexRetrieval: {
         *       datastore: {
         *         projectId: 'your-cloud-project',
         *         location: 'us-central1',
         *         collection: 'your-collection',
         *       },
         *       disableAttribution: true,
         *     }
         *   }
         * ```
         */
        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;
        }>>;
        /**
         * Google Search retrieval options.
         *
         * ```js
         *   config: {
         *     googleSearchRetrieval: {
         *       disableAttribution: true,
         *     }
         *   }
         * ```
         */
        googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            disableAttribution?: boolean | undefined;
        }, {
            disableAttribution?: boolean | undefined;
        }>>;
        /**
         * Function calling options.
         *
         * E.g. forced tool call:
         *
         * ```js
         *   config: {
         *     functionCallingConfig: {
         *       mode: 'ANY',
         *     }
         *   }
         * ```
         */
        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;
        }>>;
    }>, "passthrough", z.ZodTypeAny, z.objectOutputType<z.objectUtil.extendShape<{
        version: z.ZodOptional<z.ZodString>;
        temperature: z.ZodOptional<z.ZodNumber>;
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    }, {
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        temperature: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        location: z.ZodOptional<z.ZodString>;
        /**
         * Safety filter settings. See: https://cloud.google.com/vertex-ai/generative-ai/docs/multimodal/configure-safety-filters#configurable-filters
         *
         * E.g.
         *
         * ```js
         * config: {
         *   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',
         *     },
         *   ],
         * }
         * ```
         */
        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">>;
        /**
         * Vertex retrieval options.
         *
         * E.g.
         *
         * ```js
         *   config: {
         *     vertexRetrieval: {
         *       datastore: {
         *         projectId: 'your-cloud-project',
         *         location: 'us-central1',
         *         collection: 'your-collection',
         *       },
         *       disableAttribution: true,
         *     }
         *   }
         * ```
         */
        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;
        }>>;
        /**
         * Google Search retrieval options.
         *
         * ```js
         *   config: {
         *     googleSearchRetrieval: {
         *       disableAttribution: true,
         *     }
         *   }
         * ```
         */
        googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            disableAttribution?: boolean | undefined;
        }, {
            disableAttribution?: boolean | undefined;
        }>>;
        /**
         * Function calling options.
         *
         * E.g. forced tool call:
         *
         * ```js
         *   config: {
         *     functionCallingConfig: {
         *       mode: 'ANY',
         *     }
         *   }
         * ```
         */
        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;
        }>>;
    }>, z.ZodTypeAny, "passthrough">, z.objectInputType<z.objectUtil.extendShape<{
        version: z.ZodOptional<z.ZodString>;
        temperature: z.ZodOptional<z.ZodNumber>;
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    }, {
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        temperature: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        location: z.ZodOptional<z.ZodString>;
        /**
         * Safety filter settings. See: https://cloud.google.com/vertex-ai/generative-ai/docs/multimodal/configure-safety-filters#configurable-filters
         *
         * E.g.
         *
         * ```js
         * config: {
         *   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',
         *     },
         *   ],
         * }
         * ```
         */
        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">>;
        /**
         * Vertex retrieval options.
         *
         * E.g.
         *
         * ```js
         *   config: {
         *     vertexRetrieval: {
         *       datastore: {
         *         projectId: 'your-cloud-project',
         *         location: 'us-central1',
         *         collection: 'your-collection',
         *       },
         *       disableAttribution: true,
         *     }
         *   }
         * ```
         */
        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;
        }>>;
        /**
         * Google Search retrieval options.
         *
         * ```js
         *   config: {
         *     googleSearchRetrieval: {
         *       disableAttribution: true,
         *     }
         *   }
         * ```
         */
        googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            disableAttribution?: boolean | undefined;
        }, {
            disableAttribution?: boolean | undefined;
        }>>;
        /**
         * Function calling options.
         *
         * E.g. forced tool call:
         *
         * ```js
         *   config: {
         *     functionCallingConfig: {
         *       mode: 'ANY',
         *     }
         *   }
         * ```
         */
        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;
        }>>;
    }>, z.ZodTypeAny, "passthrough">>>;
    readonly 'gemini-2.0-flash': ModelReference<z.ZodObject<z.objectUtil.extendShape<{
        version: z.ZodOptional<z.ZodString>;
        temperature: z.ZodOptional<z.ZodNumber>;
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    }, {
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        temperature: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        location: z.ZodOptional<z.ZodString>;
        /**
         * Safety filter settings. See: https://cloud.google.com/vertex-ai/generative-ai/docs/multimodal/configure-safety-filters#configurable-filters
         *
         * E.g.
         *
         * ```js
         * config: {
         *   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',
         *     },
         *   ],
         * }
         * ```
         */
        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">>;
        /**
         * Vertex retrieval options.
         *
         * E.g.
         *
         * ```js
         *   config: {
         *     vertexRetrieval: {
         *       datastore: {
         *         projectId: 'your-cloud-project',
         *         location: 'us-central1',
         *         collection: 'your-collection',
         *       },
         *       disableAttribution: true,
         *     }
         *   }
         * ```
         */
        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;
        }>>;
        /**
         * Google Search retrieval options.
         *
         * ```js
         *   config: {
         *     googleSearchRetrieval: {
         *       disableAttribution: true,
         *     }
         *   }
         * ```
         */
        googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            disableAttribution?: boolean | undefined;
        }, {
            disableAttribution?: boolean | undefined;
        }>>;
        /**
         * Function calling options.
         *
         * E.g. forced tool call:
         *
         * ```js
         *   config: {
         *     functionCallingConfig: {
         *       mode: 'ANY',
         *     }
         *   }
         * ```
         */
        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;
        }>>;
    }>, "passthrough", z.ZodTypeAny, z.objectOutputType<z.objectUtil.extendShape<{
        version: z.ZodOptional<z.ZodString>;
        temperature: z.ZodOptional<z.ZodNumber>;
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    }, {
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        temperature: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        location: z.ZodOptional<z.ZodString>;
        /**
         * Safety filter settings. See: https://cloud.google.com/vertex-ai/generative-ai/docs/multimodal/configure-safety-filters#configurable-filters
         *
         * E.g.
         *
         * ```js
         * config: {
         *   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',
         *     },
         *   ],
         * }
         * ```
         */
        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">>;
        /**
         * Vertex retrieval options.
         *
         * E.g.
         *
         * ```js
         *   config: {
         *     vertexRetrieval: {
         *       datastore: {
         *         projectId: 'your-cloud-project',
         *         location: 'us-central1',
         *         collection: 'your-collection',
         *       },
         *       disableAttribution: true,
         *     }
         *   }
         * ```
         */
        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;
        }>>;
        /**
         * Google Search retrieval options.
         *
         * ```js
         *   config: {
         *     googleSearchRetrieval: {
         *       disableAttribution: true,
         *     }
         *   }
         * ```
         */
        googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            disableAttribution?: boolean | undefined;
        }, {
            disableAttribution?: boolean | undefined;
        }>>;
        /**
         * Function calling options.
         *
         * E.g. forced tool call:
         *
         * ```js
         *   config: {
         *     functionCallingConfig: {
         *       mode: 'ANY',
         *     }
         *   }
         * ```
         */
        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;
        }>>;
    }>, z.ZodTypeAny, "passthrough">, z.objectInputType<z.objectUtil.extendShape<{
        version: z.ZodOptional<z.ZodString>;
        temperature: z.ZodOptional<z.ZodNumber>;
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    }, {
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        temperature: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        location: z.ZodOptional<z.ZodString>;
        /**
         * Safety filter settings. See: https://cloud.google.com/vertex-ai/generative-ai/docs/multimodal/configure-safety-filters#configurable-filters
         *
         * E.g.
         *
         * ```js
         * config: {
         *   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',
         *     },
         *   ],
         * }
         * ```
         */
        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">>;
        /**
         * Vertex retrieval options.
         *
         * E.g.
         *
         * ```js
         *   config: {
         *     vertexRetrieval: {
         *       datastore: {
         *         projectId: 'your-cloud-project',
         *         location: 'us-central1',
         *         collection: 'your-collection',
         *       },
         *       disableAttribution: true,
         *     }
         *   }
         * ```
         */
        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;
        }>>;
        /**
         * Google Search retrieval options.
         *
         * ```js
         *   config: {
         *     googleSearchRetrieval: {
         *       disableAttribution: true,
         *     }
         *   }
         * ```
         */
        googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            disableAttribution?: boolean | undefined;
        }, {
            disableAttribution?: boolean | undefined;
        }>>;
        /**
         * Function calling options.
         *
         * E.g. forced tool call:
         *
         * ```js
         *   config: {
         *     functionCallingConfig: {
         *       mode: 'ANY',
         *     }
         *   }
         * ```
         */
        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;
        }>>;
    }>, z.ZodTypeAny, "passthrough">>>;
    readonly 'gemini-2.0-flash-001': ModelReference<z.ZodObject<z.objectUtil.extendShape<{
        version: z.ZodOptional<z.ZodString>;
        temperature: z.ZodOptional<z.ZodNumber>;
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    }, {
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        temperature: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        location: z.ZodOptional<z.ZodString>;
        /**
         * Safety filter settings. See: https://cloud.google.com/vertex-ai/generative-ai/docs/multimodal/configure-safety-filters#configurable-filters
         *
         * E.g.
         *
         * ```js
         * config: {
         *   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',
         *     },
         *   ],
         * }
         * ```
         */
        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">>;
        /**
         * Vertex retrieval options.
         *
         * E.g.
         *
         * ```js
         *   config: {
         *     vertexRetrieval: {
         *       datastore: {
         *         projectId: 'your-cloud-project',
         *         location: 'us-central1',
         *         collection: 'your-collection',
         *       },
         *       disableAttribution: true,
         *     }
         *   }
         * ```
         */
        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;
        }>>;
        /**
         * Google Search retrieval options.
         *
         * ```js
         *   config: {
         *     googleSearchRetrieval: {
         *       disableAttribution: true,
         *     }
         *   }
         * ```
         */
        googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            disableAttribution?: boolean | undefined;
        }, {
            disableAttribution?: boolean | undefined;
        }>>;
        /**
         * Function calling options.
         *
         * E.g. forced tool call:
         *
         * ```js
         *   config: {
         *     functionCallingConfig: {
         *       mode: 'ANY',
         *     }
         *   }
         * ```
         */
        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;
        }>>;
    }>, "passthrough", z.ZodTypeAny, z.objectOutputType<z.objectUtil.extendShape<{
        version: z.ZodOptional<z.ZodString>;
        temperature: z.ZodOptional<z.ZodNumber>;
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    }, {
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        temperature: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        location: z.ZodOptional<z.ZodString>;
        /**
         * Safety filter settings. See: https://cloud.google.com/vertex-ai/generative-ai/docs/multimodal/configure-safety-filters#configurable-filters
         *
         * E.g.
         *
         * ```js
         * config: {
         *   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',
         *     },
         *   ],
         * }
         * ```
         */
        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">>;
        /**
         * Vertex retrieval options.
         *
         * E.g.
         *
         * ```js
         *   config: {
         *     vertexRetrieval: {
         *       datastore: {
         *         projectId: 'your-cloud-project',
         *         location: 'us-central1',
         *         collection: 'your-collection',
         *       },
         *       disableAttribution: true,
         *     }
         *   }
         * ```
         */
        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;
        }>>;
        /**
         * Google Search retrieval options.
         *
         * ```js
         *   config: {
         *     googleSearchRetrieval: {
         *       disableAttribution: true,
         *     }
         *   }
         * ```
         */
        googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            disableAttribution?: boolean | undefined;
        }, {
            disableAttribution?: boolean | undefined;
        }>>;
        /**
         * Function calling options.
         *
         * E.g. forced tool call:
         *
         * ```js
         *   config: {
         *     functionCallingConfig: {
         *       mode: 'ANY',
         *     }
         *   }
         * ```
         */
        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;
        }>>;
    }>, z.ZodTypeAny, "passthrough">, z.objectInputType<z.objectUtil.extendShape<{
        version: z.ZodOptional<z.ZodString>;
        temperature: z.ZodOptional<z.ZodNumber>;
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    }, {
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        temperature: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        location: z.ZodOptional<z.ZodString>;
        /**
         * Safety filter settings. See: https://cloud.google.com/vertex-ai/generative-ai/docs/multimodal/configure-safety-filters#configurable-filters
         *
         * E.g.
         *
         * ```js
         * config: {
         *   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',
         *     },
         *   ],
         * }
         * ```
         */
        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">>;
        /**
         * Vertex retrieval options.
         *
         * E.g.
         *
         * ```js
         *   config: {
         *     vertexRetrieval: {
         *       datastore: {
         *         projectId: 'your-cloud-project',
         *         location: 'us-central1',
         *         collection: 'your-collection',
         *       },
         *       disableAttribution: true,
         *     }
         *   }
         * ```
         */
        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;
        }>>;
        /**
         * Google Search retrieval options.
         *
         * ```js
         *   config: {
         *     googleSearchRetrieval: {
         *       disableAttribution: true,
         *     }
         *   }
         * ```
         */
        googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            disableAttribution?: boolean | undefined;
        }, {
            disableAttribution?: boolean | undefined;
        }>>;
        /**
         * Function calling options.
         *
         * E.g. forced tool call:
         *
         * ```js
         *   config: {
         *     functionCallingConfig: {
         *       mode: 'ANY',
         *     }
         *   }
         * ```
         */
        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;
        }>>;
    }>, z.ZodTypeAny, "passthrough">>>;
    readonly 'gemini-2.0-flash-lite': ModelReference<z.ZodObject<z.objectUtil.extendShape<{
        version: z.ZodOptional<z.ZodString>;
        temperature: z.ZodOptional<z.ZodNumber>;
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    }, {
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        temperature: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        location: z.ZodOptional<z.ZodString>;
        /**
         * Safety filter settings. See: https://cloud.google.com/vertex-ai/generative-ai/docs/multimodal/configure-safety-filters#configurable-filters
         *
         * E.g.
         *
         * ```js
         * config: {
         *   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',
         *     },
         *   ],
         * }
         * ```
         */
        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">>;
        /**
         * Vertex retrieval options.
         *
         * E.g.
         *
         * ```js
         *   config: {
         *     vertexRetrieval: {
         *       datastore: {
         *         projectId: 'your-cloud-project',
         *         location: 'us-central1',
         *         collection: 'your-collection',
         *       },
         *       disableAttribution: true,
         *     }
         *   }
         * ```
         */
        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;
        }>>;
        /**
         * Google Search retrieval options.
         *
         * ```js
         *   config: {
         *     googleSearchRetrieval: {
         *       disableAttribution: true,
         *     }
         *   }
         * ```
         */
        googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            disableAttribution?: boolean | undefined;
        }, {
            disableAttribution?: boolean | undefined;
        }>>;
        /**
         * Function calling options.
         *
         * E.g. forced tool call:
         *
         * ```js
         *   config: {
         *     functionCallingConfig: {
         *       mode: 'ANY',
         *     }
         *   }
         * ```
         */
        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;
        }>>;
    }>, "passthrough", z.ZodTypeAny, z.objectOutputType<z.objectUtil.extendShape<{
        version: z.ZodOptional<z.ZodString>;
        temperature: z.ZodOptional<z.ZodNumber>;
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    }, {
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        temperature: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        location: z.ZodOptional<z.ZodString>;
        /**
         * Safety filter settings. See: https://cloud.google.com/vertex-ai/generative-ai/docs/multimodal/configure-safety-filters#configurable-filters
         *
         * E.g.
         *
         * ```js
         * config: {
         *   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',
         *     },
         *   ],
         * }
         * ```
         */
        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">>;
        /**
         * Vertex retrieval options.
         *
         * E.g.
         *
         * ```js
         *   config: {
         *     vertexRetrieval: {
         *       datastore: {
         *         projectId: 'your-cloud-project',
         *         location: 'us-central1',
         *         collection: 'your-collection',
         *       },
         *       disableAttribution: true,
         *     }
         *   }
         * ```
         */
        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;
        }>>;
        /**
         * Google Search retrieval options.
         *
         * ```js
         *   config: {
         *     googleSearchRetrieval: {
         *       disableAttribution: true,
         *     }
         *   }
         * ```
         */
        googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            disableAttribution?: boolean | undefined;
        }, {
            disableAttribution?: boolean | undefined;
        }>>;
        /**
         * Function calling options.
         *
         * E.g. forced tool call:
         *
         * ```js
         *   config: {
         *     functionCallingConfig: {
         *       mode: 'ANY',
         *     }
         *   }
         * ```
         */
        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;
        }>>;
    }>, z.ZodTypeAny, "passthrough">, z.objectInputType<z.objectUtil.extendShape<{
        version: z.ZodOptional<z.ZodString>;
        temperature: z.ZodOptional<z.ZodNumber>;
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    }, {
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        temperature: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        location: z.ZodOptional<z.ZodString>;
        /**
         * Safety filter settings. See: https://cloud.google.com/vertex-ai/generative-ai/docs/multimodal/configure-safety-filters#configurable-filters
         *
         * E.g.
         *
         * ```js
         * config: {
         *   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',
         *     },
         *   ],
         * }
         * ```
         */
        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">>;
        /**
         * Vertex retrieval options.
         *
         * E.g.
         *
         * ```js
         *   config: {
         *     vertexRetrieval: {
         *       datastore: {
         *         projectId: 'your-cloud-project',
         *         location: 'us-central1',
         *         collection: 'your-collection',
         *       },
         *       disableAttribution: true,
         *     }
         *   }
         * ```
         */
        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;
        }>>;
        /**
         * Google Search retrieval options.
         *
         * ```js
         *   config: {
         *     googleSearchRetrieval: {
         *       disableAttribution: true,
         *     }
         *   }
         * ```
         */
        googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            disableAttribution?: boolean | undefined;
        }, {
            disableAttribution?: boolean | undefined;
        }>>;
        /**
         * Function calling options.
         *
         * E.g. forced tool call:
         *
         * ```js
         *   config: {
         *     functionCallingConfig: {
         *       mode: 'ANY',
         *     }
         *   }
         * ```
         */
        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;
        }>>;
    }>, z.ZodTypeAny, "passthrough">>>;
    readonly 'gemini-2.0-flash-lite-preview-02-05': ModelReference<z.ZodObject<z.objectUtil.extendShape<{
        version: z.ZodOptional<z.ZodString>;
        temperature: z.ZodOptional<z.ZodNumber>;
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    }, {
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        temperature: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        location: z.ZodOptional<z.ZodString>;
        /**
         * Safety filter settings. See: https://cloud.google.com/vertex-ai/generative-ai/docs/multimodal/configure-safety-filters#configurable-filters
         *
         * E.g.
         *
         * ```js
         * config: {
         *   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',
         *     },
         *   ],
         * }
         * ```
         */
        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">>;
        /**
         * Vertex retrieval options.
         *
         * E.g.
         *
         * ```js
         *   config: {
         *     vertexRetrieval: {
         *       datastore: {
         *         projectId: 'your-cloud-project',
         *         location: 'us-central1',
         *         collection: 'your-collection',
         *       },
         *       disableAttribution: true,
         *     }
         *   }
         * ```
         */
        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;
        }>>;
        /**
         * Google Search retrieval options.
         *
         * ```js
         *   config: {
         *     googleSearchRetrieval: {
         *       disableAttribution: true,
         *     }
         *   }
         * ```
         */
        googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            disableAttribution?: boolean | undefined;
        }, {
            disableAttribution?: boolean | undefined;
        }>>;
        /**
         * Function calling options.
         *
         * E.g. forced tool call:
         *
         * ```js
         *   config: {
         *     functionCallingConfig: {
         *       mode: 'ANY',
         *     }
         *   }
         * ```
         */
        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;
        }>>;
    }>, "passthrough", z.ZodTypeAny, z.objectOutputType<z.objectUtil.extendShape<{
        version: z.ZodOptional<z.ZodString>;
        temperature: z.ZodOptional<z.ZodNumber>;
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    }, {
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        temperature: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        location: z.ZodOptional<z.ZodString>;
        /**
         * Safety filter settings. See: https://cloud.google.com/vertex-ai/generative-ai/docs/multimodal/configure-safety-filters#configurable-filters
         *
         * E.g.
         *
         * ```js
         * config: {
         *   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',
         *     },
         *   ],
         * }
         * ```
         */
        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">>;
        /**
         * Vertex retrieval options.
         *
         * E.g.
         *
         * ```js
         *   config: {
         *     vertexRetrieval: {
         *       datastore: {
         *         projectId: 'your-cloud-project',
         *         location: 'us-central1',
         *         collection: 'your-collection',
         *       },
         *       disableAttribution: true,
         *     }
         *   }
         * ```
         */
        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;
        }>>;
        /**
         * Google Search retrieval options.
         *
         * ```js
         *   config: {
         *     googleSearchRetrieval: {
         *       disableAttribution: true,
         *     }
         *   }
         * ```
         */
        googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            disableAttribution?: boolean | undefined;
        }, {
            disableAttribution?: boolean | undefined;
        }>>;
        /**
         * Function calling options.
         *
         * E.g. forced tool call:
         *
         * ```js
         *   config: {
         *     functionCallingConfig: {
         *       mode: 'ANY',
         *     }
         *   }
         * ```
         */
        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;
        }>>;
    }>, z.ZodTypeAny, "passthrough">, z.objectInputType<z.objectUtil.extendShape<{
        version: z.ZodOptional<z.ZodString>;
        temperature: z.ZodOptional<z.ZodNumber>;
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    }, {
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        temperature: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        location: z.ZodOptional<z.ZodString>;
        /**
         * Safety filter settings. See: https://cloud.google.com/vertex-ai/generative-ai/docs/multimodal/configure-safety-filters#configurable-filters
         *
         * E.g.
         *
         * ```js
         * config: {
         *   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',
         *     },
         *   ],
         * }
         * ```
         */
        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">>;
        /**
         * Vertex retrieval options.
         *
         * E.g.
         *
         * ```js
         *   config: {
         *     vertexRetrieval: {
         *       datastore: {
         *         projectId: 'your-cloud-project',
         *         location: 'us-central1',
         *         collection: 'your-collection',
         *       },
         *       disableAttribution: true,
         *     }
         *   }
         * ```
         */
        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;
        }>>;
        /**
         * Google Search retrieval options.
         *
         * ```js
         *   config: {
         *     googleSearchRetrieval: {
         *       disableAttribution: true,
         *     }
         *   }
         * ```
         */
        googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            disableAttribution?: boolean | undefined;
        }, {
            disableAttribution?: boolean | undefined;
        }>>;
        /**
         * Function calling options.
         *
         * E.g. forced tool call:
         *
         * ```js
         *   config: {
         *     functionCallingConfig: {
         *       mode: 'ANY',
         *     }
         *   }
         * ```
         */
        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;
        }>>;
    }>, z.ZodTypeAny, "passthrough">>>;
    readonly 'gemini-2.0-pro-exp-02-05': ModelReference<z.ZodObject<z.objectUtil.extendShape<{
        version: z.ZodOptional<z.ZodString>;
        temperature: z.ZodOptional<z.ZodNumber>;
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    }, {
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        temperature: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        location: z.ZodOptional<z.ZodString>;
        /**
         * Safety filter settings. See: https://cloud.google.com/vertex-ai/generative-ai/docs/multimodal/configure-safety-filters#configurable-filters
         *
         * E.g.
         *
         * ```js
         * config: {
         *   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',
         *     },
         *   ],
         * }
         * ```
         */
        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">>;
        /**
         * Vertex retrieval options.
         *
         * E.g.
         *
         * ```js
         *   config: {
         *     vertexRetrieval: {
         *       datastore: {
         *         projectId: 'your-cloud-project',
         *         location: 'us-central1',
         *         collection: 'your-collection',
         *       },
         *       disableAttribution: true,
         *     }
         *   }
         * ```
         */
        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;
        }>>;
        /**
         * Google Search retrieval options.
         *
         * ```js
         *   config: {
         *     googleSearchRetrieval: {
         *       disableAttribution: true,
         *     }
         *   }
         * ```
         */
        googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            disableAttribution?: boolean | undefined;
        }, {
            disableAttribution?: boolean | undefined;
        }>>;
        /**
         * Function calling options.
         *
         * E.g. forced tool call:
         *
         * ```js
         *   config: {
         *     functionCallingConfig: {
         *       mode: 'ANY',
         *     }
         *   }
         * ```
         */
        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;
        }>>;
    }>, "passthrough", z.ZodTypeAny, z.objectOutputType<z.objectUtil.extendShape<{
        version: z.ZodOptional<z.ZodString>;
        temperature: z.ZodOptional<z.ZodNumber>;
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    }, {
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        temperature: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        location: z.ZodOptional<z.ZodString>;
        /**
         * Safety filter settings. See: https://cloud.google.com/vertex-ai/generative-ai/docs/multimodal/configure-safety-filters#configurable-filters
         *
         * E.g.
         *
         * ```js
         * config: {
         *   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',
         *     },
         *   ],
         * }
         * ```
         */
        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">>;
        /**
         * Vertex retrieval options.
         *
         * E.g.
         *
         * ```js
         *   config: {
         *     vertexRetrieval: {
         *       datastore: {
         *         projectId: 'your-cloud-project',
         *         location: 'us-central1',
         *         collection: 'your-collection',
         *       },
         *       disableAttribution: true,
         *     }
         *   }
         * ```
         */
        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;
        }>>;
        /**
         * Google Search retrieval options.
         *
         * ```js
         *   config: {
         *     googleSearchRetrieval: {
         *       disableAttribution: true,
         *     }
         *   }
         * ```
         */
        googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            disableAttribution?: boolean | undefined;
        }, {
            disableAttribution?: boolean | undefined;
        }>>;
        /**
         * Function calling options.
         *
         * E.g. forced tool call:
         *
         * ```js
         *   config: {
         *     functionCallingConfig: {
         *       mode: 'ANY',
         *     }
         *   }
         * ```
         */
        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;
        }>>;
    }>, z.ZodTypeAny, "passthrough">, z.objectInputType<z.objectUtil.extendShape<{
        version: z.ZodOptional<z.ZodString>;
        temperature: z.ZodOptional<z.ZodNumber>;
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    }, {
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        temperature: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        location: z.ZodOptional<z.ZodString>;
        /**
         * Safety filter settings. See: https://cloud.google.com/vertex-ai/generative-ai/docs/multimodal/configure-safety-filters#configurable-filters
         *
         * E.g.
         *
         * ```js
         * config: {
         *   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',
         *     },
         *   ],
         * }
         * ```
         */
        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">>;
        /**
         * Vertex retrieval options.
         *
         * E.g.
         *
         * ```js
         *   config: {
         *     vertexRetrieval: {
         *       datastore: {
         *         projectId: 'your-cloud-project',
         *         location: 'us-central1',
         *         collection: 'your-collection',
         *       },
         *       disableAttribution: true,
         *     }
         *   }
         * ```
         */
        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;
        }>>;
        /**
         * Google Search retrieval options.
         *
         * ```js
         *   config: {
         *     googleSearchRetrieval: {
         *       disableAttribution: true,
         *     }
         *   }
         * ```
         */
        googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            disableAttribution?: boolean | undefined;
        }, {
            disableAttribution?: boolean | undefined;
        }>>;
        /**
         * Function calling options.
         *
         * E.g. forced tool call:
         *
         * ```js
         *   config: {
         *     functionCallingConfig: {
         *       mode: 'ANY',
         *     }
         *   }
         * ```
         */
        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;
        }>>;
    }>, z.ZodTypeAny, "passthrough">>>;
    readonly 'gemini-2.5-pro-exp-03-25': ModelReference<z.ZodObject<z.objectUtil.extendShape<{
        version: z.ZodOptional<z.ZodString>;
        temperature: z.ZodOptional<z.ZodNumber>;
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    }, {
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        temperature: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        location: z.ZodOptional<z.ZodString>;
        /**
         * Safety filter settings. See: https://cloud.google.com/vertex-ai/generative-ai/docs/multimodal/configure-safety-filters#configurable-filters
         *
         * E.g.
         *
         * ```js
         * config: {
         *   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',
         *     },
         *   ],
         * }
         * ```
         */
        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">>;
        /**
         * Vertex retrieval options.
         *
         * E.g.
         *
         * ```js
         *   config: {
         *     vertexRetrieval: {
         *       datastore: {
         *         projectId: 'your-cloud-project',
         *         location: 'us-central1',
         *         collection: 'your-collection',
         *       },
         *       disableAttribution: true,
         *     }
         *   }
         * ```
         */
        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;
        }>>;
        /**
         * Google Search retrieval options.
         *
         * ```js
         *   config: {
         *     googleSearchRetrieval: {
         *       disableAttribution: true,
         *     }
         *   }
         * ```
         */
        googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            disableAttribution?: boolean | undefined;
        }, {
            disableAttribution?: boolean | undefined;
        }>>;
        /**
         * Function calling options.
         *
         * E.g. forced tool call:
         *
         * ```js
         *   config: {
         *     functionCallingConfig: {
         *       mode: 'ANY',
         *     }
         *   }
         * ```
         */
        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;
        }>>;
    }>, "passthrough", z.ZodTypeAny, z.objectOutputType<z.objectUtil.extendShape<{
        version: z.ZodOptional<z.ZodString>;
        temperature: z.ZodOptional<z.ZodNumber>;
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    }, {
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        temperature: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        location: z.ZodOptional<z.ZodString>;
        /**
         * Safety filter settings. See: https://cloud.google.com/vertex-ai/generative-ai/docs/multimodal/configure-safety-filters#configurable-filters
         *
         * E.g.
         *
         * ```js
         * config: {
         *   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',
         *     },
         *   ],
         * }
         * ```
         */
        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">>;
        /**
         * Vertex retrieval options.
         *
         * E.g.
         *
         * ```js
         *   config: {
         *     vertexRetrieval: {
         *       datastore: {
         *         projectId: 'your-cloud-project',
         *         location: 'us-central1',
         *         collection: 'your-collection',
         *       },
         *       disableAttribution: true,
         *     }
         *   }
         * ```
         */
        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;
        }>>;
        /**
         * Google Search retrieval options.
         *
         * ```js
         *   config: {
         *     googleSearchRetrieval: {
         *       disableAttribution: true,
         *     }
         *   }
         * ```
         */
        googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            disableAttribution?: boolean | undefined;
        }, {
            disableAttribution?: boolean | undefined;
        }>>;
        /**
         * Function calling options.
         *
         * E.g. forced tool call:
         *
         * ```js
         *   config: {
         *     functionCallingConfig: {
         *       mode: 'ANY',
         *     }
         *   }
         * ```
         */
        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;
        }>>;
    }>, z.ZodTypeAny, "passthrough">, z.objectInputType<z.objectUtil.extendShape<{
        version: z.ZodOptional<z.ZodString>;
        temperature: z.ZodOptional<z.ZodNumber>;
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    }, {
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        temperature: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        location: z.ZodOptional<z.ZodString>;
        /**
         * Safety filter settings. See: https://cloud.google.com/vertex-ai/generative-ai/docs/multimodal/configure-safety-filters#configurable-filters
         *
         * E.g.
         *
         * ```js
         * config: {
         *   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',
         *     },
         *   ],
         * }
         * ```
         */
        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">>;
        /**
         * Vertex retrieval options.
         *
         * E.g.
         *
         * ```js
         *   config: {
         *     vertexRetrieval: {
         *       datastore: {
         *         projectId: 'your-cloud-project',
         *         location: 'us-central1',
         *         collection: 'your-collection',
         *       },
         *       disableAttribution: true,
         *     }
         *   }
         * ```
         */
        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;
        }>>;
        /**
         * Google Search retrieval options.
         *
         * ```js
         *   config: {
         *     googleSearchRetrieval: {
         *       disableAttribution: true,
         *     }
         *   }
         * ```
         */
        googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            disableAttribution?: boolean | undefined;
        }, {
            disableAttribution?: boolean | undefined;
        }>>;
        /**
         * Function calling options.
         *
         * E.g. forced tool call:
         *
         * ```js
         *   config: {
         *     functionCallingConfig: {
         *       mode: 'ANY',
         *     }
         *   }
         * ```
         */
        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;
        }>>;
    }>, z.ZodTypeAny, "passthrough">>>;
    readonly 'gemini-2.5-pro-preview-03-25': ModelReference<z.ZodObject<z.objectUtil.extendShape<{
        version: z.ZodOptional<z.ZodString>;
        temperature: z.ZodOptional<z.ZodNumber>;
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    }, {
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        temperature: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        location: z.ZodOptional<z.ZodString>;
        /**
         * Safety filter settings. See: https://cloud.google.com/vertex-ai/generative-ai/docs/multimodal/configure-safety-filters#configurable-filters
         *
         * E.g.
         *
         * ```js
         * config: {
         *   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',
         *     },
         *   ],
         * }
         * ```
         */
        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">>;
        /**
         * Vertex retrieval options.
         *
         * E.g.
         *
         * ```js
         *   config: {
         *     vertexRetrieval: {
         *       datastore: {
         *         projectId: 'your-cloud-project',
         *         location: 'us-central1',
         *         collection: 'your-collection',
         *       },
         *       disableAttribution: true,
         *     }
         *   }
         * ```
         */
        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;
        }>>;
        /**
         * Google Search retrieval options.
         *
         * ```js
         *   config: {
         *     googleSearchRetrieval: {
         *       disableAttribution: true,
         *     }
         *   }
         * ```
         */
        googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            disableAttribution?: boolean | undefined;
        }, {
            disableAttribution?: boolean | undefined;
        }>>;
        /**
         * Function calling options.
         *
         * E.g. forced tool call:
         *
         * ```js
         *   config: {
         *     functionCallingConfig: {
         *       mode: 'ANY',
         *     }
         *   }
         * ```
         */
        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;
        }>>;
    }>, "passthrough", z.ZodTypeAny, z.objectOutputType<z.objectUtil.extendShape<{
        version: z.ZodOptional<z.ZodString>;
        temperature: z.ZodOptional<z.ZodNumber>;
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    }, {
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        temperature: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        location: z.ZodOptional<z.ZodString>;
        /**
         * Safety filter settings. See: https://cloud.google.com/vertex-ai/generative-ai/docs/multimodal/configure-safety-filters#configurable-filters
         *
         * E.g.
         *
         * ```js
         * config: {
         *   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',
         *     },
         *   ],
         * }
         * ```
         */
        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">>;
        /**
         * Vertex retrieval options.
         *
         * E.g.
         *
         * ```js
         *   config: {
         *     vertexRetrieval: {
         *       datastore: {
         *         projectId: 'your-cloud-project',
         *         location: 'us-central1',
         *         collection: 'your-collection',
         *       },
         *       disableAttribution: true,
         *     }
         *   }
         * ```
         */
        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;
        }>>;
        /**
         * Google Search retrieval options.
         *
         * ```js
         *   config: {
         *     googleSearchRetrieval: {
         *       disableAttribution: true,
         *     }
         *   }
         * ```
         */
        googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            disableAttribution?: boolean | undefined;
        }, {
            disableAttribution?: boolean | undefined;
        }>>;
        /**
         * Function calling options.
         *
         * E.g. forced tool call:
         *
         * ```js
         *   config: {
         *     functionCallingConfig: {
         *       mode: 'ANY',
         *     }
         *   }
         * ```
         */
        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;
        }>>;
    }>, z.ZodTypeAny, "passthrough">, z.objectInputType<z.objectUtil.extendShape<{
        version: z.ZodOptional<z.ZodString>;
        temperature: z.ZodOptional<z.ZodNumber>;
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    }, {
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        temperature: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        location: z.ZodOptional<z.ZodString>;
        /**
         * Safety filter settings. See: https://cloud.google.com/vertex-ai/generative-ai/docs/multimodal/configure-safety-filters#configurable-filters
         *
         * E.g.
         *
         * ```js
         * config: {
         *   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',
         *     },
         *   ],
         * }
         * ```
         */
        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">>;
        /**
         * Vertex retrieval options.
         *
         * E.g.
         *
         * ```js
         *   config: {
         *     vertexRetrieval: {
         *       datastore: {
         *         projectId: 'your-cloud-project',
         *         location: 'us-central1',
         *         collection: 'your-collection',
         *       },
         *       disableAttribution: true,
         *     }
         *   }
         * ```
         */
        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;
        }>>;
        /**
         * Google Search retrieval options.
         *
         * ```js
         *   config: {
         *     googleSearchRetrieval: {
         *       disableAttribution: true,
         *     }
         *   }
         * ```
         */
        googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            disableAttribution?: boolean | undefined;
        }, {
            disableAttribution?: boolean | undefined;
        }>>;
        /**
         * Function calling options.
         *
         * E.g. forced tool call:
         *
         * ```js
         *   config: {
         *     functionCallingConfig: {
         *       mode: 'ANY',
         *     }
         *   }
         * ```
         */
        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;
        }>>;
    }>, z.ZodTypeAny, "passthrough">>>;
    readonly 'gemini-2.5-flash-preview-04-17': ModelReference<z.ZodObject<z.objectUtil.extendShape<{
        version: z.ZodOptional<z.ZodString>;
        temperature: z.ZodOptional<z.ZodNumber>;
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    }, {
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        temperature: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        location: z.ZodOptional<z.ZodString>;
        /**
         * Safety filter settings. See: https://cloud.google.com/vertex-ai/generative-ai/docs/multimodal/configure-safety-filters#configurable-filters
         *
         * E.g.
         *
         * ```js
         * config: {
         *   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',
         *     },
         *   ],
         * }
         * ```
         */
        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">>;
        /**
         * Vertex retrieval options.
         *
         * E.g.
         *
         * ```js
         *   config: {
         *     vertexRetrieval: {
         *       datastore: {
         *         projectId: 'your-cloud-project',
         *         location: 'us-central1',
         *         collection: 'your-collection',
         *       },
         *       disableAttribution: true,
         *     }
         *   }
         * ```
         */
        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;
        }>>;
        /**
         * Google Search retrieval options.
         *
         * ```js
         *   config: {
         *     googleSearchRetrieval: {
         *       disableAttribution: true,
         *     }
         *   }
         * ```
         */
        googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            disableAttribution?: boolean | undefined;
        }, {
            disableAttribution?: boolean | undefined;
        }>>;
        /**
         * Function calling options.
         *
         * E.g. forced tool call:
         *
         * ```js
         *   config: {
         *     functionCallingConfig: {
         *       mode: 'ANY',
         *     }
         *   }
         * ```
         */
        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;
        }>>;
    }>, "passthrough", z.ZodTypeAny, z.objectOutputType<z.objectUtil.extendShape<{
        version: z.ZodOptional<z.ZodString>;
        temperature: z.ZodOptional<z.ZodNumber>;
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    }, {
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        temperature: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        location: z.ZodOptional<z.ZodString>;
        /**
         * Safety filter settings. See: https://cloud.google.com/vertex-ai/generative-ai/docs/multimodal/configure-safety-filters#configurable-filters
         *
         * E.g.
         *
         * ```js
         * config: {
         *   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',
         *     },
         *   ],
         * }
         * ```
         */
        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">>;
        /**
         * Vertex retrieval options.
         *
         * E.g.
         *
         * ```js
         *   config: {
         *     vertexRetrieval: {
         *       datastore: {
         *         projectId: 'your-cloud-project',
         *         location: 'us-central1',
         *         collection: 'your-collection',
         *       },
         *       disableAttribution: true,
         *     }
         *   }
         * ```
         */
        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;
        }>>;
        /**
         * Google Search retrieval options.
         *
         * ```js
         *   config: {
         *     googleSearchRetrieval: {
         *       disableAttribution: true,
         *     }
         *   }
         * ```
         */
        googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            disableAttribution?: boolean | undefined;
        }, {
            disableAttribution?: boolean | undefined;
        }>>;
        /**
         * Function calling options.
         *
         * E.g. forced tool call:
         *
         * ```js
         *   config: {
         *     functionCallingConfig: {
         *       mode: 'ANY',
         *     }
         *   }
         * ```
         */
        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;
        }>>;
    }>, z.ZodTypeAny, "passthrough">, z.objectInputType<z.objectUtil.extendShape<{
        version: z.ZodOptional<z.ZodString>;
        temperature: z.ZodOptional<z.ZodNumber>;
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        stopSequences: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
    }, {
        maxOutputTokens: z.ZodOptional<z.ZodNumber>;
        temperature: z.ZodOptional<z.ZodNumber>;
        topK: z.ZodOptional<z.ZodNumber>;
        topP: z.ZodOptional<z.ZodNumber>;
        location: z.ZodOptional<z.ZodString>;
        /**
         * Safety filter settings. See: https://cloud.google.com/vertex-ai/generative-ai/docs/multimodal/configure-safety-filters#configurable-filters
         *
         * E.g.
         *
         * ```js
         * config: {
         *   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',
         *     },
         *   ],
         * }
         * ```
         */
        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">>;
        /**
         * Vertex retrieval options.
         *
         * E.g.
         *
         * ```js
         *   config: {
         *     vertexRetrieval: {
         *       datastore: {
         *         projectId: 'your-cloud-project',
         *         location: 'us-central1',
         *         collection: 'your-collection',
         *       },
         *       disableAttribution: true,
         *     }
         *   }
         * ```
         */
        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;
        }>>;
        /**
         * Google Search retrieval options.
         *
         * ```js
         *   config: {
         *     googleSearchRetrieval: {
         *       disableAttribution: true,
         *     }
         *   }
         * ```
         */
        googleSearchRetrieval: z.ZodOptional<z.ZodObject<{
            disableAttribution: z.ZodOptional<z.ZodBoolean>;
        }, "strip", z.ZodTypeAny, {
            disableAttribution?: boolean | undefined;
        }, {
            disableAttribution?: boolean | undefined;
        }>>;
        /**
         * Function calling options.
         *
         * E.g. forced tool call:
         *
         * ```js
         *   config: {
         *     functionCallingConfig: {
         *       mode: 'ANY',
         *     }
         *   }
         * ```
         */
        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;
        }>>;
    }>, z.ZodTypeAny, "passthrough">>>;
};
/** @hidden */
declare const toGeminiTool: (tool: z.infer<typeof ToolDefinitionSchema>) => FunctionDeclaration;
declare function toGeminiSystemInstruction(message: MessageData): Content;
declare function toGeminiMessage(message: MessageData, modelInfo?: ModelInfo): Content;
declare function fromGeminiCandidate(candidate: GenerateContentCandidate, jsonMode: boolean): CandidateData;
declare function cleanSchema(schema: JSONSchema): JSONSchema;
/**
 * Define a Vertex AI Gemini model.
 */
declare function defineGeminiKnownModel(ai: Genkit, name: string, vertexClientFactory: (request: GenerateRequest<typeof GeminiConfigSchema>) => VertexAI, options: PluginOptions, debugTraces?: boolean): ModelAction;
/**
 * Define a Vertex AI Gemini model.
 */
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 { type CommonPluginOptions as C, GeminiConfigSchema as G, type PluginOptions as P, SUPPORTED_GEMINI_MODELS as S, SafetySettingsSchema as a, gemini10Pro as b, gemini15Flash as c, gemini15Pro as d, gemini20Flash as e, gemini20Flash001 as f, gemini as g, gemini20FlashLite as h, gemini20FlashLitePreview0205 as i, gemini20ProExp0205 as j, gemini25FlashPreview0417 as k, gemini25ProExp0325 as l, gemini25ProPreview0325 as m, type GeminiConfig as n, type GeminiVersionString as o, GENERIC_GEMINI_MODEL as p, SUPPORTED_V15_MODELS as q, toGeminiSystemInstruction as r, toGeminiMessage as s, toGeminiTool as t, fromGeminiCandidate as u, cleanSchema as v, defineGeminiKnownModel as w, defineGeminiModel as x };
