import { z, JSONSchema, Genkit, ModelReference as ModelReference$1 } from 'genkit';
import { GoogleAuthOptions } from 'google-auth-library';
import { HarmCategory, HarmBlockThreshold, 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.
 */

/**
 * Zod schema of Gemini model options.
 */
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">>;
}, {
    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.ZodNativeEnum<typeof HarmCategory>;
        threshold: z.ZodNativeEnum<typeof HarmBlockThreshold>;
    }, "strip", z.ZodTypeAny, {
        category: HarmCategory;
        threshold: HarmBlockThreshold;
    }, {
        category: HarmCategory;
        threshold: HarmBlockThreshold;
    }>, "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;
    }>>;
}>, "strip", z.ZodTypeAny, {
    location?: string | undefined;
    version?: string | undefined;
    safetySettings?: {
        category: HarmCategory;
        threshold: HarmBlockThreshold;
    }[] | undefined;
    vertexRetrieval?: {
        datastore: {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        };
        disableAttribution?: boolean | undefined;
    } | undefined;
    googleSearchRetrieval?: {
        disableAttribution?: boolean | undefined;
    } | undefined;
    functionCallingConfig?: {
        mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
        allowedFunctionNames?: string[] | undefined;
    } | undefined;
    temperature?: number | undefined;
    maxOutputTokens?: number | undefined;
    topK?: number | undefined;
    topP?: number | undefined;
    stopSequences?: string[] | undefined;
}, {
    location?: string | undefined;
    version?: string | undefined;
    safetySettings?: {
        category: HarmCategory;
        threshold: HarmBlockThreshold;
    }[] | undefined;
    vertexRetrieval?: {
        datastore: {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        };
        disableAttribution?: boolean | undefined;
    } | undefined;
    googleSearchRetrieval?: {
        disableAttribution?: boolean | undefined;
    } | undefined;
    functionCallingConfig?: {
        mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
        allowedFunctionNames?: string[] | undefined;
    } | undefined;
    temperature?: number | undefined;
    maxOutputTokens?: number | undefined;
    topK?: number | undefined;
    topP?: number | undefined;
    stopSequences?: string[] | undefined;
}>;
/**
 * 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">>;
}, {
    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.ZodNativeEnum<typeof HarmCategory>;
        threshold: z.ZodNativeEnum<typeof HarmBlockThreshold>;
    }, "strip", z.ZodTypeAny, {
        category: HarmCategory;
        threshold: HarmBlockThreshold;
    }, {
        category: HarmCategory;
        threshold: HarmBlockThreshold;
    }>, "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;
    }>>;
}>, "strip", z.ZodTypeAny, {
    location?: string | undefined;
    version?: string | undefined;
    safetySettings?: {
        category: HarmCategory;
        threshold: HarmBlockThreshold;
    }[] | undefined;
    vertexRetrieval?: {
        datastore: {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        };
        disableAttribution?: boolean | undefined;
    } | undefined;
    googleSearchRetrieval?: {
        disableAttribution?: boolean | undefined;
    } | undefined;
    functionCallingConfig?: {
        mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
        allowedFunctionNames?: string[] | undefined;
    } | undefined;
    temperature?: number | undefined;
    maxOutputTokens?: number | undefined;
    topK?: number | undefined;
    topP?: number | undefined;
    stopSequences?: string[] | undefined;
}, {
    location?: string | undefined;
    version?: string | undefined;
    safetySettings?: {
        category: HarmCategory;
        threshold: HarmBlockThreshold;
    }[] | undefined;
    vertexRetrieval?: {
        datastore: {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        };
        disableAttribution?: boolean | undefined;
    } | undefined;
    googleSearchRetrieval?: {
        disableAttribution?: boolean | undefined;
    } | undefined;
    functionCallingConfig?: {
        mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
        allowedFunctionNames?: string[] | undefined;
    } | undefined;
    temperature?: number | undefined;
    maxOutputTokens?: number | undefined;
    topK?: number | undefined;
    topP?: number | undefined;
    stopSequences?: string[] | undefined;
}>>;
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">>;
}, {
    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.ZodNativeEnum<typeof HarmCategory>;
        threshold: z.ZodNativeEnum<typeof HarmBlockThreshold>;
    }, "strip", z.ZodTypeAny, {
        category: HarmCategory;
        threshold: HarmBlockThreshold;
    }, {
        category: HarmCategory;
        threshold: HarmBlockThreshold;
    }>, "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;
    }>>;
}>, "strip", z.ZodTypeAny, {
    location?: string | undefined;
    version?: string | undefined;
    safetySettings?: {
        category: HarmCategory;
        threshold: HarmBlockThreshold;
    }[] | undefined;
    vertexRetrieval?: {
        datastore: {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        };
        disableAttribution?: boolean | undefined;
    } | undefined;
    googleSearchRetrieval?: {
        disableAttribution?: boolean | undefined;
    } | undefined;
    functionCallingConfig?: {
        mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
        allowedFunctionNames?: string[] | undefined;
    } | undefined;
    temperature?: number | undefined;
    maxOutputTokens?: number | undefined;
    topK?: number | undefined;
    topP?: number | undefined;
    stopSequences?: string[] | undefined;
}, {
    location?: string | undefined;
    version?: string | undefined;
    safetySettings?: {
        category: HarmCategory;
        threshold: HarmBlockThreshold;
    }[] | undefined;
    vertexRetrieval?: {
        datastore: {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        };
        disableAttribution?: boolean | undefined;
    } | undefined;
    googleSearchRetrieval?: {
        disableAttribution?: boolean | undefined;
    } | undefined;
    functionCallingConfig?: {
        mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
        allowedFunctionNames?: string[] | undefined;
    } | undefined;
    temperature?: number | undefined;
    maxOutputTokens?: number | undefined;
    topK?: number | undefined;
    topP?: number | undefined;
    stopSequences?: string[] | undefined;
}>>;
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">>;
}, {
    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.ZodNativeEnum<typeof HarmCategory>;
        threshold: z.ZodNativeEnum<typeof HarmBlockThreshold>;
    }, "strip", z.ZodTypeAny, {
        category: HarmCategory;
        threshold: HarmBlockThreshold;
    }, {
        category: HarmCategory;
        threshold: HarmBlockThreshold;
    }>, "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;
    }>>;
}>, "strip", z.ZodTypeAny, {
    location?: string | undefined;
    version?: string | undefined;
    safetySettings?: {
        category: HarmCategory;
        threshold: HarmBlockThreshold;
    }[] | undefined;
    vertexRetrieval?: {
        datastore: {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        };
        disableAttribution?: boolean | undefined;
    } | undefined;
    googleSearchRetrieval?: {
        disableAttribution?: boolean | undefined;
    } | undefined;
    functionCallingConfig?: {
        mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
        allowedFunctionNames?: string[] | undefined;
    } | undefined;
    temperature?: number | undefined;
    maxOutputTokens?: number | undefined;
    topK?: number | undefined;
    topP?: number | undefined;
    stopSequences?: string[] | undefined;
}, {
    location?: string | undefined;
    version?: string | undefined;
    safetySettings?: {
        category: HarmCategory;
        threshold: HarmBlockThreshold;
    }[] | undefined;
    vertexRetrieval?: {
        datastore: {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        };
        disableAttribution?: boolean | undefined;
    } | undefined;
    googleSearchRetrieval?: {
        disableAttribution?: boolean | undefined;
    } | undefined;
    functionCallingConfig?: {
        mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
        allowedFunctionNames?: string[] | undefined;
    } | undefined;
    temperature?: number | undefined;
    maxOutputTokens?: number | undefined;
    topK?: number | undefined;
    topP?: number | undefined;
    stopSequences?: string[] | undefined;
}>>;
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">>;
}, {
    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.ZodNativeEnum<typeof HarmCategory>;
        threshold: z.ZodNativeEnum<typeof HarmBlockThreshold>;
    }, "strip", z.ZodTypeAny, {
        category: HarmCategory;
        threshold: HarmBlockThreshold;
    }, {
        category: HarmCategory;
        threshold: HarmBlockThreshold;
    }>, "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;
    }>>;
}>, "strip", z.ZodTypeAny, {
    location?: string | undefined;
    version?: string | undefined;
    safetySettings?: {
        category: HarmCategory;
        threshold: HarmBlockThreshold;
    }[] | undefined;
    vertexRetrieval?: {
        datastore: {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        };
        disableAttribution?: boolean | undefined;
    } | undefined;
    googleSearchRetrieval?: {
        disableAttribution?: boolean | undefined;
    } | undefined;
    functionCallingConfig?: {
        mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
        allowedFunctionNames?: string[] | undefined;
    } | undefined;
    temperature?: number | undefined;
    maxOutputTokens?: number | undefined;
    topK?: number | undefined;
    topP?: number | undefined;
    stopSequences?: string[] | undefined;
}, {
    location?: string | undefined;
    version?: string | undefined;
    safetySettings?: {
        category: HarmCategory;
        threshold: HarmBlockThreshold;
    }[] | undefined;
    vertexRetrieval?: {
        datastore: {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        };
        disableAttribution?: boolean | undefined;
    } | undefined;
    googleSearchRetrieval?: {
        disableAttribution?: boolean | undefined;
    } | undefined;
    functionCallingConfig?: {
        mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
        allowedFunctionNames?: string[] | undefined;
    } | undefined;
    temperature?: number | undefined;
    maxOutputTokens?: number | undefined;
    topK?: number | undefined;
    topP?: number | undefined;
    stopSequences?: string[] | undefined;
}>>;
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">>;
}, {
    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.ZodNativeEnum<typeof HarmCategory>;
        threshold: z.ZodNativeEnum<typeof HarmBlockThreshold>;
    }, "strip", z.ZodTypeAny, {
        category: HarmCategory;
        threshold: HarmBlockThreshold;
    }, {
        category: HarmCategory;
        threshold: HarmBlockThreshold;
    }>, "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;
    }>>;
}>, "strip", z.ZodTypeAny, {
    location?: string | undefined;
    version?: string | undefined;
    safetySettings?: {
        category: HarmCategory;
        threshold: HarmBlockThreshold;
    }[] | undefined;
    vertexRetrieval?: {
        datastore: {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        };
        disableAttribution?: boolean | undefined;
    } | undefined;
    googleSearchRetrieval?: {
        disableAttribution?: boolean | undefined;
    } | undefined;
    functionCallingConfig?: {
        mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
        allowedFunctionNames?: string[] | undefined;
    } | undefined;
    temperature?: number | undefined;
    maxOutputTokens?: number | undefined;
    topK?: number | undefined;
    topP?: number | undefined;
    stopSequences?: string[] | undefined;
}, {
    location?: string | undefined;
    version?: string | undefined;
    safetySettings?: {
        category: HarmCategory;
        threshold: HarmBlockThreshold;
    }[] | undefined;
    vertexRetrieval?: {
        datastore: {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        };
        disableAttribution?: boolean | undefined;
    } | undefined;
    googleSearchRetrieval?: {
        disableAttribution?: boolean | undefined;
    } | undefined;
    functionCallingConfig?: {
        mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
        allowedFunctionNames?: string[] | undefined;
    } | undefined;
    temperature?: number | undefined;
    maxOutputTokens?: number | undefined;
    topK?: number | undefined;
    topP?: number | undefined;
    stopSequences?: string[] | undefined;
}>>;
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">>;
}, {
    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.ZodNativeEnum<typeof HarmCategory>;
        threshold: z.ZodNativeEnum<typeof HarmBlockThreshold>;
    }, "strip", z.ZodTypeAny, {
        category: HarmCategory;
        threshold: HarmBlockThreshold;
    }, {
        category: HarmCategory;
        threshold: HarmBlockThreshold;
    }>, "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;
    }>>;
}>, "strip", z.ZodTypeAny, {
    location?: string | undefined;
    version?: string | undefined;
    safetySettings?: {
        category: HarmCategory;
        threshold: HarmBlockThreshold;
    }[] | undefined;
    vertexRetrieval?: {
        datastore: {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        };
        disableAttribution?: boolean | undefined;
    } | undefined;
    googleSearchRetrieval?: {
        disableAttribution?: boolean | undefined;
    } | undefined;
    functionCallingConfig?: {
        mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
        allowedFunctionNames?: string[] | undefined;
    } | undefined;
    temperature?: number | undefined;
    maxOutputTokens?: number | undefined;
    topK?: number | undefined;
    topP?: number | undefined;
    stopSequences?: string[] | undefined;
}, {
    location?: string | undefined;
    version?: string | undefined;
    safetySettings?: {
        category: HarmCategory;
        threshold: HarmBlockThreshold;
    }[] | undefined;
    vertexRetrieval?: {
        datastore: {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        };
        disableAttribution?: boolean | undefined;
    } | undefined;
    googleSearchRetrieval?: {
        disableAttribution?: boolean | undefined;
    } | undefined;
    functionCallingConfig?: {
        mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
        allowedFunctionNames?: string[] | undefined;
    } | undefined;
    temperature?: number | undefined;
    maxOutputTokens?: number | undefined;
    topK?: number | undefined;
    topP?: number | undefined;
    stopSequences?: string[] | undefined;
}>>;
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">>;
}, {
    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.ZodNativeEnum<typeof HarmCategory>;
        threshold: z.ZodNativeEnum<typeof HarmBlockThreshold>;
    }, "strip", z.ZodTypeAny, {
        category: HarmCategory;
        threshold: HarmBlockThreshold;
    }, {
        category: HarmCategory;
        threshold: HarmBlockThreshold;
    }>, "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;
    }>>;
}>, "strip", z.ZodTypeAny, {
    location?: string | undefined;
    version?: string | undefined;
    safetySettings?: {
        category: HarmCategory;
        threshold: HarmBlockThreshold;
    }[] | undefined;
    vertexRetrieval?: {
        datastore: {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        };
        disableAttribution?: boolean | undefined;
    } | undefined;
    googleSearchRetrieval?: {
        disableAttribution?: boolean | undefined;
    } | undefined;
    functionCallingConfig?: {
        mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
        allowedFunctionNames?: string[] | undefined;
    } | undefined;
    temperature?: number | undefined;
    maxOutputTokens?: number | undefined;
    topK?: number | undefined;
    topP?: number | undefined;
    stopSequences?: string[] | undefined;
}, {
    location?: string | undefined;
    version?: string | undefined;
    safetySettings?: {
        category: HarmCategory;
        threshold: HarmBlockThreshold;
    }[] | undefined;
    vertexRetrieval?: {
        datastore: {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        };
        disableAttribution?: boolean | undefined;
    } | undefined;
    googleSearchRetrieval?: {
        disableAttribution?: boolean | undefined;
    } | undefined;
    functionCallingConfig?: {
        mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
        allowedFunctionNames?: string[] | undefined;
    } | undefined;
    temperature?: number | undefined;
    maxOutputTokens?: number | undefined;
    topK?: number | undefined;
    topP?: number | undefined;
    stopSequences?: string[] | undefined;
}>>;
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">>;
}, {
    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.ZodNativeEnum<typeof HarmCategory>;
        threshold: z.ZodNativeEnum<typeof HarmBlockThreshold>;
    }, "strip", z.ZodTypeAny, {
        category: HarmCategory;
        threshold: HarmBlockThreshold;
    }, {
        category: HarmCategory;
        threshold: HarmBlockThreshold;
    }>, "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;
    }>>;
}>, "strip", z.ZodTypeAny, {
    location?: string | undefined;
    version?: string | undefined;
    safetySettings?: {
        category: HarmCategory;
        threshold: HarmBlockThreshold;
    }[] | undefined;
    vertexRetrieval?: {
        datastore: {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        };
        disableAttribution?: boolean | undefined;
    } | undefined;
    googleSearchRetrieval?: {
        disableAttribution?: boolean | undefined;
    } | undefined;
    functionCallingConfig?: {
        mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
        allowedFunctionNames?: string[] | undefined;
    } | undefined;
    temperature?: number | undefined;
    maxOutputTokens?: number | undefined;
    topK?: number | undefined;
    topP?: number | undefined;
    stopSequences?: string[] | undefined;
}, {
    location?: string | undefined;
    version?: string | undefined;
    safetySettings?: {
        category: HarmCategory;
        threshold: HarmBlockThreshold;
    }[] | undefined;
    vertexRetrieval?: {
        datastore: {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        };
        disableAttribution?: boolean | undefined;
    } | undefined;
    googleSearchRetrieval?: {
        disableAttribution?: boolean | undefined;
    } | undefined;
    functionCallingConfig?: {
        mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
        allowedFunctionNames?: string[] | undefined;
    } | undefined;
    temperature?: number | undefined;
    maxOutputTokens?: number | undefined;
    topK?: number | undefined;
    topP?: number | undefined;
    stopSequences?: string[] | undefined;
}>>;
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">>;
}, {
    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.ZodNativeEnum<typeof HarmCategory>;
        threshold: z.ZodNativeEnum<typeof HarmBlockThreshold>;
    }, "strip", z.ZodTypeAny, {
        category: HarmCategory;
        threshold: HarmBlockThreshold;
    }, {
        category: HarmCategory;
        threshold: HarmBlockThreshold;
    }>, "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;
    }>>;
}>, "strip", z.ZodTypeAny, {
    location?: string | undefined;
    version?: string | undefined;
    safetySettings?: {
        category: HarmCategory;
        threshold: HarmBlockThreshold;
    }[] | undefined;
    vertexRetrieval?: {
        datastore: {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        };
        disableAttribution?: boolean | undefined;
    } | undefined;
    googleSearchRetrieval?: {
        disableAttribution?: boolean | undefined;
    } | undefined;
    functionCallingConfig?: {
        mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
        allowedFunctionNames?: string[] | undefined;
    } | undefined;
    temperature?: number | undefined;
    maxOutputTokens?: number | undefined;
    topK?: number | undefined;
    topP?: number | undefined;
    stopSequences?: string[] | undefined;
}, {
    location?: string | undefined;
    version?: string | undefined;
    safetySettings?: {
        category: HarmCategory;
        threshold: HarmBlockThreshold;
    }[] | undefined;
    vertexRetrieval?: {
        datastore: {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        };
        disableAttribution?: boolean | undefined;
    } | undefined;
    googleSearchRetrieval?: {
        disableAttribution?: boolean | undefined;
    } | undefined;
    functionCallingConfig?: {
        mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
        allowedFunctionNames?: string[] | undefined;
    } | undefined;
    temperature?: number | undefined;
    maxOutputTokens?: number | undefined;
    topK?: number | undefined;
    topP?: number | undefined;
    stopSequences?: string[] | undefined;
}>>;
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">>;
}, {
    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.ZodNativeEnum<typeof HarmCategory>;
        threshold: z.ZodNativeEnum<typeof HarmBlockThreshold>;
    }, "strip", z.ZodTypeAny, {
        category: HarmCategory;
        threshold: HarmBlockThreshold;
    }, {
        category: HarmCategory;
        threshold: HarmBlockThreshold;
    }>, "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;
    }>>;
}>, "strip", z.ZodTypeAny, {
    location?: string | undefined;
    version?: string | undefined;
    safetySettings?: {
        category: HarmCategory;
        threshold: HarmBlockThreshold;
    }[] | undefined;
    vertexRetrieval?: {
        datastore: {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        };
        disableAttribution?: boolean | undefined;
    } | undefined;
    googleSearchRetrieval?: {
        disableAttribution?: boolean | undefined;
    } | undefined;
    functionCallingConfig?: {
        mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
        allowedFunctionNames?: string[] | undefined;
    } | undefined;
    temperature?: number | undefined;
    maxOutputTokens?: number | undefined;
    topK?: number | undefined;
    topP?: number | undefined;
    stopSequences?: string[] | undefined;
}, {
    location?: string | undefined;
    version?: string | undefined;
    safetySettings?: {
        category: HarmCategory;
        threshold: HarmBlockThreshold;
    }[] | undefined;
    vertexRetrieval?: {
        datastore: {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        };
        disableAttribution?: boolean | undefined;
    } | undefined;
    googleSearchRetrieval?: {
        disableAttribution?: boolean | undefined;
    } | undefined;
    functionCallingConfig?: {
        mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
        allowedFunctionNames?: string[] | undefined;
    } | undefined;
    temperature?: number | undefined;
    maxOutputTokens?: number | undefined;
    topK?: number | undefined;
    topP?: number | undefined;
    stopSequences?: string[] | undefined;
}>>;
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">>;
}, {
    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.ZodNativeEnum<typeof HarmCategory>;
        threshold: z.ZodNativeEnum<typeof HarmBlockThreshold>;
    }, "strip", z.ZodTypeAny, {
        category: HarmCategory;
        threshold: HarmBlockThreshold;
    }, {
        category: HarmCategory;
        threshold: HarmBlockThreshold;
    }>, "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;
    }>>;
}>, "strip", z.ZodTypeAny, {
    location?: string | undefined;
    version?: string | undefined;
    safetySettings?: {
        category: HarmCategory;
        threshold: HarmBlockThreshold;
    }[] | undefined;
    vertexRetrieval?: {
        datastore: {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        };
        disableAttribution?: boolean | undefined;
    } | undefined;
    googleSearchRetrieval?: {
        disableAttribution?: boolean | undefined;
    } | undefined;
    functionCallingConfig?: {
        mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
        allowedFunctionNames?: string[] | undefined;
    } | undefined;
    temperature?: number | undefined;
    maxOutputTokens?: number | undefined;
    topK?: number | undefined;
    topP?: number | undefined;
    stopSequences?: string[] | undefined;
}, {
    location?: string | undefined;
    version?: string | undefined;
    safetySettings?: {
        category: HarmCategory;
        threshold: HarmBlockThreshold;
    }[] | undefined;
    vertexRetrieval?: {
        datastore: {
            dataStoreId: string;
            location?: string | undefined;
            projectId?: string | undefined;
        };
        disableAttribution?: boolean | undefined;
    } | undefined;
    googleSearchRetrieval?: {
        disableAttribution?: boolean | undefined;
    } | undefined;
    functionCallingConfig?: {
        mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
        allowedFunctionNames?: string[] | undefined;
    } | undefined;
    temperature?: number | undefined;
    maxOutputTokens?: number | undefined;
    topK?: number | undefined;
    topP?: number | undefined;
    stopSequences?: string[] | undefined;
}>>;
declare const SUPPORTED_V1_MODELS: {
    'gemini-1.0-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">>;
    }, {
        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.ZodNativeEnum<typeof HarmCategory>;
            threshold: z.ZodNativeEnum<typeof HarmBlockThreshold>;
        }, "strip", z.ZodTypeAny, {
            category: HarmCategory;
            threshold: HarmBlockThreshold;
        }, {
            category: HarmCategory;
            threshold: HarmBlockThreshold;
        }>, "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;
        }>>;
    }>, "strip", z.ZodTypeAny, {
        location?: string | undefined;
        version?: string | undefined;
        safetySettings?: {
            category: HarmCategory;
            threshold: HarmBlockThreshold;
        }[] | undefined;
        vertexRetrieval?: {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        } | undefined;
        googleSearchRetrieval?: {
            disableAttribution?: boolean | undefined;
        } | undefined;
        functionCallingConfig?: {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        } | undefined;
        temperature?: number | undefined;
        maxOutputTokens?: number | undefined;
        topK?: number | undefined;
        topP?: number | undefined;
        stopSequences?: string[] | undefined;
    }, {
        location?: string | undefined;
        version?: string | undefined;
        safetySettings?: {
            category: HarmCategory;
            threshold: HarmBlockThreshold;
        }[] | undefined;
        vertexRetrieval?: {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        } | undefined;
        googleSearchRetrieval?: {
            disableAttribution?: boolean | undefined;
        } | undefined;
        functionCallingConfig?: {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        } | undefined;
        temperature?: number | undefined;
        maxOutputTokens?: number | undefined;
        topK?: number | undefined;
        topP?: number | undefined;
        stopSequences?: string[] | undefined;
    }>>;
};
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">>;
    }, {
        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.ZodNativeEnum<typeof HarmCategory>;
            threshold: z.ZodNativeEnum<typeof HarmBlockThreshold>;
        }, "strip", z.ZodTypeAny, {
            category: HarmCategory;
            threshold: HarmBlockThreshold;
        }, {
            category: HarmCategory;
            threshold: HarmBlockThreshold;
        }>, "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;
        }>>;
    }>, "strip", z.ZodTypeAny, {
        location?: string | undefined;
        version?: string | undefined;
        safetySettings?: {
            category: HarmCategory;
            threshold: HarmBlockThreshold;
        }[] | undefined;
        vertexRetrieval?: {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        } | undefined;
        googleSearchRetrieval?: {
            disableAttribution?: boolean | undefined;
        } | undefined;
        functionCallingConfig?: {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        } | undefined;
        temperature?: number | undefined;
        maxOutputTokens?: number | undefined;
        topK?: number | undefined;
        topP?: number | undefined;
        stopSequences?: string[] | undefined;
    }, {
        location?: string | undefined;
        version?: string | undefined;
        safetySettings?: {
            category: HarmCategory;
            threshold: HarmBlockThreshold;
        }[] | undefined;
        vertexRetrieval?: {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        } | undefined;
        googleSearchRetrieval?: {
            disableAttribution?: boolean | undefined;
        } | undefined;
        functionCallingConfig?: {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        } | undefined;
        temperature?: number | undefined;
        maxOutputTokens?: number | undefined;
        topK?: number | undefined;
        topP?: number | undefined;
        stopSequences?: string[] | undefined;
    }>>;
    '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">>;
    }, {
        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.ZodNativeEnum<typeof HarmCategory>;
            threshold: z.ZodNativeEnum<typeof HarmBlockThreshold>;
        }, "strip", z.ZodTypeAny, {
            category: HarmCategory;
            threshold: HarmBlockThreshold;
        }, {
            category: HarmCategory;
            threshold: HarmBlockThreshold;
        }>, "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;
        }>>;
    }>, "strip", z.ZodTypeAny, {
        location?: string | undefined;
        version?: string | undefined;
        safetySettings?: {
            category: HarmCategory;
            threshold: HarmBlockThreshold;
        }[] | undefined;
        vertexRetrieval?: {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        } | undefined;
        googleSearchRetrieval?: {
            disableAttribution?: boolean | undefined;
        } | undefined;
        functionCallingConfig?: {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        } | undefined;
        temperature?: number | undefined;
        maxOutputTokens?: number | undefined;
        topK?: number | undefined;
        topP?: number | undefined;
        stopSequences?: string[] | undefined;
    }, {
        location?: string | undefined;
        version?: string | undefined;
        safetySettings?: {
            category: HarmCategory;
            threshold: HarmBlockThreshold;
        }[] | undefined;
        vertexRetrieval?: {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        } | undefined;
        googleSearchRetrieval?: {
            disableAttribution?: boolean | undefined;
        } | undefined;
        functionCallingConfig?: {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        } | undefined;
        temperature?: number | undefined;
        maxOutputTokens?: number | undefined;
        topK?: number | undefined;
        topP?: number | undefined;
        stopSequences?: string[] | undefined;
    }>>;
    '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">>;
    }, {
        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.ZodNativeEnum<typeof HarmCategory>;
            threshold: z.ZodNativeEnum<typeof HarmBlockThreshold>;
        }, "strip", z.ZodTypeAny, {
            category: HarmCategory;
            threshold: HarmBlockThreshold;
        }, {
            category: HarmCategory;
            threshold: HarmBlockThreshold;
        }>, "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;
        }>>;
    }>, "strip", z.ZodTypeAny, {
        location?: string | undefined;
        version?: string | undefined;
        safetySettings?: {
            category: HarmCategory;
            threshold: HarmBlockThreshold;
        }[] | undefined;
        vertexRetrieval?: {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        } | undefined;
        googleSearchRetrieval?: {
            disableAttribution?: boolean | undefined;
        } | undefined;
        functionCallingConfig?: {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        } | undefined;
        temperature?: number | undefined;
        maxOutputTokens?: number | undefined;
        topK?: number | undefined;
        topP?: number | undefined;
        stopSequences?: string[] | undefined;
    }, {
        location?: string | undefined;
        version?: string | undefined;
        safetySettings?: {
            category: HarmCategory;
            threshold: HarmBlockThreshold;
        }[] | undefined;
        vertexRetrieval?: {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        } | undefined;
        googleSearchRetrieval?: {
            disableAttribution?: boolean | undefined;
        } | undefined;
        functionCallingConfig?: {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        } | undefined;
        temperature?: number | undefined;
        maxOutputTokens?: number | undefined;
        topK?: number | undefined;
        topP?: number | undefined;
        stopSequences?: string[] | undefined;
    }>>;
    '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">>;
    }, {
        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.ZodNativeEnum<typeof HarmCategory>;
            threshold: z.ZodNativeEnum<typeof HarmBlockThreshold>;
        }, "strip", z.ZodTypeAny, {
            category: HarmCategory;
            threshold: HarmBlockThreshold;
        }, {
            category: HarmCategory;
            threshold: HarmBlockThreshold;
        }>, "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;
        }>>;
    }>, "strip", z.ZodTypeAny, {
        location?: string | undefined;
        version?: string | undefined;
        safetySettings?: {
            category: HarmCategory;
            threshold: HarmBlockThreshold;
        }[] | undefined;
        vertexRetrieval?: {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        } | undefined;
        googleSearchRetrieval?: {
            disableAttribution?: boolean | undefined;
        } | undefined;
        functionCallingConfig?: {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        } | undefined;
        temperature?: number | undefined;
        maxOutputTokens?: number | undefined;
        topK?: number | undefined;
        topP?: number | undefined;
        stopSequences?: string[] | undefined;
    }, {
        location?: string | undefined;
        version?: string | undefined;
        safetySettings?: {
            category: HarmCategory;
            threshold: HarmBlockThreshold;
        }[] | undefined;
        vertexRetrieval?: {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        } | undefined;
        googleSearchRetrieval?: {
            disableAttribution?: boolean | undefined;
        } | undefined;
        functionCallingConfig?: {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        } | undefined;
        temperature?: number | undefined;
        maxOutputTokens?: number | undefined;
        topK?: number | undefined;
        topP?: number | undefined;
        stopSequences?: string[] | undefined;
    }>>;
    '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">>;
    }, {
        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.ZodNativeEnum<typeof HarmCategory>;
            threshold: z.ZodNativeEnum<typeof HarmBlockThreshold>;
        }, "strip", z.ZodTypeAny, {
            category: HarmCategory;
            threshold: HarmBlockThreshold;
        }, {
            category: HarmCategory;
            threshold: HarmBlockThreshold;
        }>, "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;
        }>>;
    }>, "strip", z.ZodTypeAny, {
        location?: string | undefined;
        version?: string | undefined;
        safetySettings?: {
            category: HarmCategory;
            threshold: HarmBlockThreshold;
        }[] | undefined;
        vertexRetrieval?: {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        } | undefined;
        googleSearchRetrieval?: {
            disableAttribution?: boolean | undefined;
        } | undefined;
        functionCallingConfig?: {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        } | undefined;
        temperature?: number | undefined;
        maxOutputTokens?: number | undefined;
        topK?: number | undefined;
        topP?: number | undefined;
        stopSequences?: string[] | undefined;
    }, {
        location?: string | undefined;
        version?: string | undefined;
        safetySettings?: {
            category: HarmCategory;
            threshold: HarmBlockThreshold;
        }[] | undefined;
        vertexRetrieval?: {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        } | undefined;
        googleSearchRetrieval?: {
            disableAttribution?: boolean | undefined;
        } | undefined;
        functionCallingConfig?: {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        } | undefined;
        temperature?: number | undefined;
        maxOutputTokens?: number | undefined;
        topK?: number | undefined;
        topP?: number | undefined;
        stopSequences?: string[] | undefined;
    }>>;
    '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">>;
    }, {
        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.ZodNativeEnum<typeof HarmCategory>;
            threshold: z.ZodNativeEnum<typeof HarmBlockThreshold>;
        }, "strip", z.ZodTypeAny, {
            category: HarmCategory;
            threshold: HarmBlockThreshold;
        }, {
            category: HarmCategory;
            threshold: HarmBlockThreshold;
        }>, "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;
        }>>;
    }>, "strip", z.ZodTypeAny, {
        location?: string | undefined;
        version?: string | undefined;
        safetySettings?: {
            category: HarmCategory;
            threshold: HarmBlockThreshold;
        }[] | undefined;
        vertexRetrieval?: {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        } | undefined;
        googleSearchRetrieval?: {
            disableAttribution?: boolean | undefined;
        } | undefined;
        functionCallingConfig?: {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        } | undefined;
        temperature?: number | undefined;
        maxOutputTokens?: number | undefined;
        topK?: number | undefined;
        topP?: number | undefined;
        stopSequences?: string[] | undefined;
    }, {
        location?: string | undefined;
        version?: string | undefined;
        safetySettings?: {
            category: HarmCategory;
            threshold: HarmBlockThreshold;
        }[] | undefined;
        vertexRetrieval?: {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        } | undefined;
        googleSearchRetrieval?: {
            disableAttribution?: boolean | undefined;
        } | undefined;
        functionCallingConfig?: {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        } | undefined;
        temperature?: number | undefined;
        maxOutputTokens?: number | undefined;
        topK?: number | undefined;
        topP?: number | undefined;
        stopSequences?: string[] | undefined;
    }>>;
    '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">>;
    }, {
        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.ZodNativeEnum<typeof HarmCategory>;
            threshold: z.ZodNativeEnum<typeof HarmBlockThreshold>;
        }, "strip", z.ZodTypeAny, {
            category: HarmCategory;
            threshold: HarmBlockThreshold;
        }, {
            category: HarmCategory;
            threshold: HarmBlockThreshold;
        }>, "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;
        }>>;
    }>, "strip", z.ZodTypeAny, {
        location?: string | undefined;
        version?: string | undefined;
        safetySettings?: {
            category: HarmCategory;
            threshold: HarmBlockThreshold;
        }[] | undefined;
        vertexRetrieval?: {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        } | undefined;
        googleSearchRetrieval?: {
            disableAttribution?: boolean | undefined;
        } | undefined;
        functionCallingConfig?: {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        } | undefined;
        temperature?: number | undefined;
        maxOutputTokens?: number | undefined;
        topK?: number | undefined;
        topP?: number | undefined;
        stopSequences?: string[] | undefined;
    }, {
        location?: string | undefined;
        version?: string | undefined;
        safetySettings?: {
            category: HarmCategory;
            threshold: HarmBlockThreshold;
        }[] | undefined;
        vertexRetrieval?: {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        } | undefined;
        googleSearchRetrieval?: {
            disableAttribution?: boolean | undefined;
        } | undefined;
        functionCallingConfig?: {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        } | undefined;
        temperature?: number | undefined;
        maxOutputTokens?: number | undefined;
        topK?: number | undefined;
        topP?: number | undefined;
        stopSequences?: string[] | undefined;
    }>>;
    '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">>;
    }, {
        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.ZodNativeEnum<typeof HarmCategory>;
            threshold: z.ZodNativeEnum<typeof HarmBlockThreshold>;
        }, "strip", z.ZodTypeAny, {
            category: HarmCategory;
            threshold: HarmBlockThreshold;
        }, {
            category: HarmCategory;
            threshold: HarmBlockThreshold;
        }>, "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;
        }>>;
    }>, "strip", z.ZodTypeAny, {
        location?: string | undefined;
        version?: string | undefined;
        safetySettings?: {
            category: HarmCategory;
            threshold: HarmBlockThreshold;
        }[] | undefined;
        vertexRetrieval?: {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        } | undefined;
        googleSearchRetrieval?: {
            disableAttribution?: boolean | undefined;
        } | undefined;
        functionCallingConfig?: {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        } | undefined;
        temperature?: number | undefined;
        maxOutputTokens?: number | undefined;
        topK?: number | undefined;
        topP?: number | undefined;
        stopSequences?: string[] | undefined;
    }, {
        location?: string | undefined;
        version?: string | undefined;
        safetySettings?: {
            category: HarmCategory;
            threshold: HarmBlockThreshold;
        }[] | undefined;
        vertexRetrieval?: {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        } | undefined;
        googleSearchRetrieval?: {
            disableAttribution?: boolean | undefined;
        } | undefined;
        functionCallingConfig?: {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        } | undefined;
        temperature?: number | undefined;
        maxOutputTokens?: number | undefined;
        topK?: number | undefined;
        topP?: number | undefined;
        stopSequences?: string[] | undefined;
    }>>;
    '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">>;
    }, {
        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.ZodNativeEnum<typeof HarmCategory>;
            threshold: z.ZodNativeEnum<typeof HarmBlockThreshold>;
        }, "strip", z.ZodTypeAny, {
            category: HarmCategory;
            threshold: HarmBlockThreshold;
        }, {
            category: HarmCategory;
            threshold: HarmBlockThreshold;
        }>, "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;
        }>>;
    }>, "strip", z.ZodTypeAny, {
        location?: string | undefined;
        version?: string | undefined;
        safetySettings?: {
            category: HarmCategory;
            threshold: HarmBlockThreshold;
        }[] | undefined;
        vertexRetrieval?: {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        } | undefined;
        googleSearchRetrieval?: {
            disableAttribution?: boolean | undefined;
        } | undefined;
        functionCallingConfig?: {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        } | undefined;
        temperature?: number | undefined;
        maxOutputTokens?: number | undefined;
        topK?: number | undefined;
        topP?: number | undefined;
        stopSequences?: string[] | undefined;
    }, {
        location?: string | undefined;
        version?: string | undefined;
        safetySettings?: {
            category: HarmCategory;
            threshold: HarmBlockThreshold;
        }[] | undefined;
        vertexRetrieval?: {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        } | undefined;
        googleSearchRetrieval?: {
            disableAttribution?: boolean | undefined;
        } | undefined;
        functionCallingConfig?: {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        } | undefined;
        temperature?: number | undefined;
        maxOutputTokens?: number | undefined;
        topK?: number | undefined;
        topP?: number | undefined;
        stopSequences?: string[] | undefined;
    }>>;
};
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">>;
    }, {
        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.ZodNativeEnum<typeof HarmCategory>;
            threshold: z.ZodNativeEnum<typeof HarmBlockThreshold>;
        }, "strip", z.ZodTypeAny, {
            category: HarmCategory;
            threshold: HarmBlockThreshold;
        }, {
            category: HarmCategory;
            threshold: HarmBlockThreshold;
        }>, "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;
        }>>;
    }>, "strip", z.ZodTypeAny, {
        location?: string | undefined;
        version?: string | undefined;
        safetySettings?: {
            category: HarmCategory;
            threshold: HarmBlockThreshold;
        }[] | undefined;
        vertexRetrieval?: {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        } | undefined;
        googleSearchRetrieval?: {
            disableAttribution?: boolean | undefined;
        } | undefined;
        functionCallingConfig?: {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        } | undefined;
        temperature?: number | undefined;
        maxOutputTokens?: number | undefined;
        topK?: number | undefined;
        topP?: number | undefined;
        stopSequences?: string[] | undefined;
    }, {
        location?: string | undefined;
        version?: string | undefined;
        safetySettings?: {
            category: HarmCategory;
            threshold: HarmBlockThreshold;
        }[] | undefined;
        vertexRetrieval?: {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        } | undefined;
        googleSearchRetrieval?: {
            disableAttribution?: boolean | undefined;
        } | undefined;
        functionCallingConfig?: {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        } | undefined;
        temperature?: number | undefined;
        maxOutputTokens?: number | undefined;
        topK?: number | undefined;
        topP?: number | undefined;
        stopSequences?: string[] | undefined;
    }>>;
    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">>;
    }, {
        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.ZodNativeEnum<typeof HarmCategory>;
            threshold: z.ZodNativeEnum<typeof HarmBlockThreshold>;
        }, "strip", z.ZodTypeAny, {
            category: HarmCategory;
            threshold: HarmBlockThreshold;
        }, {
            category: HarmCategory;
            threshold: HarmBlockThreshold;
        }>, "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;
        }>>;
    }>, "strip", z.ZodTypeAny, {
        location?: string | undefined;
        version?: string | undefined;
        safetySettings?: {
            category: HarmCategory;
            threshold: HarmBlockThreshold;
        }[] | undefined;
        vertexRetrieval?: {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        } | undefined;
        googleSearchRetrieval?: {
            disableAttribution?: boolean | undefined;
        } | undefined;
        functionCallingConfig?: {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        } | undefined;
        temperature?: number | undefined;
        maxOutputTokens?: number | undefined;
        topK?: number | undefined;
        topP?: number | undefined;
        stopSequences?: string[] | undefined;
    }, {
        location?: string | undefined;
        version?: string | undefined;
        safetySettings?: {
            category: HarmCategory;
            threshold: HarmBlockThreshold;
        }[] | undefined;
        vertexRetrieval?: {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        } | undefined;
        googleSearchRetrieval?: {
            disableAttribution?: boolean | undefined;
        } | undefined;
        functionCallingConfig?: {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        } | undefined;
        temperature?: number | undefined;
        maxOutputTokens?: number | undefined;
        topK?: number | undefined;
        topP?: number | undefined;
        stopSequences?: string[] | undefined;
    }>>;
    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">>;
    }, {
        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.ZodNativeEnum<typeof HarmCategory>;
            threshold: z.ZodNativeEnum<typeof HarmBlockThreshold>;
        }, "strip", z.ZodTypeAny, {
            category: HarmCategory;
            threshold: HarmBlockThreshold;
        }, {
            category: HarmCategory;
            threshold: HarmBlockThreshold;
        }>, "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;
        }>>;
    }>, "strip", z.ZodTypeAny, {
        location?: string | undefined;
        version?: string | undefined;
        safetySettings?: {
            category: HarmCategory;
            threshold: HarmBlockThreshold;
        }[] | undefined;
        vertexRetrieval?: {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        } | undefined;
        googleSearchRetrieval?: {
            disableAttribution?: boolean | undefined;
        } | undefined;
        functionCallingConfig?: {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        } | undefined;
        temperature?: number | undefined;
        maxOutputTokens?: number | undefined;
        topK?: number | undefined;
        topP?: number | undefined;
        stopSequences?: string[] | undefined;
    }, {
        location?: string | undefined;
        version?: string | undefined;
        safetySettings?: {
            category: HarmCategory;
            threshold: HarmBlockThreshold;
        }[] | undefined;
        vertexRetrieval?: {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        } | undefined;
        googleSearchRetrieval?: {
            disableAttribution?: boolean | undefined;
        } | undefined;
        functionCallingConfig?: {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        } | undefined;
        temperature?: number | undefined;
        maxOutputTokens?: number | undefined;
        topK?: number | undefined;
        topP?: number | undefined;
        stopSequences?: string[] | undefined;
    }>>;
    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">>;
    }, {
        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.ZodNativeEnum<typeof HarmCategory>;
            threshold: z.ZodNativeEnum<typeof HarmBlockThreshold>;
        }, "strip", z.ZodTypeAny, {
            category: HarmCategory;
            threshold: HarmBlockThreshold;
        }, {
            category: HarmCategory;
            threshold: HarmBlockThreshold;
        }>, "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;
        }>>;
    }>, "strip", z.ZodTypeAny, {
        location?: string | undefined;
        version?: string | undefined;
        safetySettings?: {
            category: HarmCategory;
            threshold: HarmBlockThreshold;
        }[] | undefined;
        vertexRetrieval?: {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        } | undefined;
        googleSearchRetrieval?: {
            disableAttribution?: boolean | undefined;
        } | undefined;
        functionCallingConfig?: {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        } | undefined;
        temperature?: number | undefined;
        maxOutputTokens?: number | undefined;
        topK?: number | undefined;
        topP?: number | undefined;
        stopSequences?: string[] | undefined;
    }, {
        location?: string | undefined;
        version?: string | undefined;
        safetySettings?: {
            category: HarmCategory;
            threshold: HarmBlockThreshold;
        }[] | undefined;
        vertexRetrieval?: {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        } | undefined;
        googleSearchRetrieval?: {
            disableAttribution?: boolean | undefined;
        } | undefined;
        functionCallingConfig?: {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        } | undefined;
        temperature?: number | undefined;
        maxOutputTokens?: number | undefined;
        topK?: number | undefined;
        topP?: number | undefined;
        stopSequences?: string[] | undefined;
    }>>;
    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">>;
    }, {
        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.ZodNativeEnum<typeof HarmCategory>;
            threshold: z.ZodNativeEnum<typeof HarmBlockThreshold>;
        }, "strip", z.ZodTypeAny, {
            category: HarmCategory;
            threshold: HarmBlockThreshold;
        }, {
            category: HarmCategory;
            threshold: HarmBlockThreshold;
        }>, "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;
        }>>;
    }>, "strip", z.ZodTypeAny, {
        location?: string | undefined;
        version?: string | undefined;
        safetySettings?: {
            category: HarmCategory;
            threshold: HarmBlockThreshold;
        }[] | undefined;
        vertexRetrieval?: {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        } | undefined;
        googleSearchRetrieval?: {
            disableAttribution?: boolean | undefined;
        } | undefined;
        functionCallingConfig?: {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        } | undefined;
        temperature?: number | undefined;
        maxOutputTokens?: number | undefined;
        topK?: number | undefined;
        topP?: number | undefined;
        stopSequences?: string[] | undefined;
    }, {
        location?: string | undefined;
        version?: string | undefined;
        safetySettings?: {
            category: HarmCategory;
            threshold: HarmBlockThreshold;
        }[] | undefined;
        vertexRetrieval?: {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        } | undefined;
        googleSearchRetrieval?: {
            disableAttribution?: boolean | undefined;
        } | undefined;
        functionCallingConfig?: {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        } | undefined;
        temperature?: number | undefined;
        maxOutputTokens?: number | undefined;
        topK?: number | undefined;
        topP?: number | undefined;
        stopSequences?: string[] | undefined;
    }>>;
    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">>;
    }, {
        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.ZodNativeEnum<typeof HarmCategory>;
            threshold: z.ZodNativeEnum<typeof HarmBlockThreshold>;
        }, "strip", z.ZodTypeAny, {
            category: HarmCategory;
            threshold: HarmBlockThreshold;
        }, {
            category: HarmCategory;
            threshold: HarmBlockThreshold;
        }>, "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;
        }>>;
    }>, "strip", z.ZodTypeAny, {
        location?: string | undefined;
        version?: string | undefined;
        safetySettings?: {
            category: HarmCategory;
            threshold: HarmBlockThreshold;
        }[] | undefined;
        vertexRetrieval?: {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        } | undefined;
        googleSearchRetrieval?: {
            disableAttribution?: boolean | undefined;
        } | undefined;
        functionCallingConfig?: {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        } | undefined;
        temperature?: number | undefined;
        maxOutputTokens?: number | undefined;
        topK?: number | undefined;
        topP?: number | undefined;
        stopSequences?: string[] | undefined;
    }, {
        location?: string | undefined;
        version?: string | undefined;
        safetySettings?: {
            category: HarmCategory;
            threshold: HarmBlockThreshold;
        }[] | undefined;
        vertexRetrieval?: {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        } | undefined;
        googleSearchRetrieval?: {
            disableAttribution?: boolean | undefined;
        } | undefined;
        functionCallingConfig?: {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        } | undefined;
        temperature?: number | undefined;
        maxOutputTokens?: number | undefined;
        topK?: number | undefined;
        topP?: number | undefined;
        stopSequences?: string[] | undefined;
    }>>;
    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">>;
    }, {
        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.ZodNativeEnum<typeof HarmCategory>;
            threshold: z.ZodNativeEnum<typeof HarmBlockThreshold>;
        }, "strip", z.ZodTypeAny, {
            category: HarmCategory;
            threshold: HarmBlockThreshold;
        }, {
            category: HarmCategory;
            threshold: HarmBlockThreshold;
        }>, "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;
        }>>;
    }>, "strip", z.ZodTypeAny, {
        location?: string | undefined;
        version?: string | undefined;
        safetySettings?: {
            category: HarmCategory;
            threshold: HarmBlockThreshold;
        }[] | undefined;
        vertexRetrieval?: {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        } | undefined;
        googleSearchRetrieval?: {
            disableAttribution?: boolean | undefined;
        } | undefined;
        functionCallingConfig?: {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        } | undefined;
        temperature?: number | undefined;
        maxOutputTokens?: number | undefined;
        topK?: number | undefined;
        topP?: number | undefined;
        stopSequences?: string[] | undefined;
    }, {
        location?: string | undefined;
        version?: string | undefined;
        safetySettings?: {
            category: HarmCategory;
            threshold: HarmBlockThreshold;
        }[] | undefined;
        vertexRetrieval?: {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        } | undefined;
        googleSearchRetrieval?: {
            disableAttribution?: boolean | undefined;
        } | undefined;
        functionCallingConfig?: {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        } | undefined;
        temperature?: number | undefined;
        maxOutputTokens?: number | undefined;
        topK?: number | undefined;
        topP?: number | undefined;
        stopSequences?: string[] | undefined;
    }>>;
    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">>;
    }, {
        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.ZodNativeEnum<typeof HarmCategory>;
            threshold: z.ZodNativeEnum<typeof HarmBlockThreshold>;
        }, "strip", z.ZodTypeAny, {
            category: HarmCategory;
            threshold: HarmBlockThreshold;
        }, {
            category: HarmCategory;
            threshold: HarmBlockThreshold;
        }>, "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;
        }>>;
    }>, "strip", z.ZodTypeAny, {
        location?: string | undefined;
        version?: string | undefined;
        safetySettings?: {
            category: HarmCategory;
            threshold: HarmBlockThreshold;
        }[] | undefined;
        vertexRetrieval?: {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        } | undefined;
        googleSearchRetrieval?: {
            disableAttribution?: boolean | undefined;
        } | undefined;
        functionCallingConfig?: {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        } | undefined;
        temperature?: number | undefined;
        maxOutputTokens?: number | undefined;
        topK?: number | undefined;
        topP?: number | undefined;
        stopSequences?: string[] | undefined;
    }, {
        location?: string | undefined;
        version?: string | undefined;
        safetySettings?: {
            category: HarmCategory;
            threshold: HarmBlockThreshold;
        }[] | undefined;
        vertexRetrieval?: {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        } | undefined;
        googleSearchRetrieval?: {
            disableAttribution?: boolean | undefined;
        } | undefined;
        functionCallingConfig?: {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        } | undefined;
        temperature?: number | undefined;
        maxOutputTokens?: number | undefined;
        topK?: number | undefined;
        topP?: number | undefined;
        stopSequences?: string[] | undefined;
    }>>;
    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">>;
    }, {
        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.ZodNativeEnum<typeof HarmCategory>;
            threshold: z.ZodNativeEnum<typeof HarmBlockThreshold>;
        }, "strip", z.ZodTypeAny, {
            category: HarmCategory;
            threshold: HarmBlockThreshold;
        }, {
            category: HarmCategory;
            threshold: HarmBlockThreshold;
        }>, "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;
        }>>;
    }>, "strip", z.ZodTypeAny, {
        location?: string | undefined;
        version?: string | undefined;
        safetySettings?: {
            category: HarmCategory;
            threshold: HarmBlockThreshold;
        }[] | undefined;
        vertexRetrieval?: {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        } | undefined;
        googleSearchRetrieval?: {
            disableAttribution?: boolean | undefined;
        } | undefined;
        functionCallingConfig?: {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        } | undefined;
        temperature?: number | undefined;
        maxOutputTokens?: number | undefined;
        topK?: number | undefined;
        topP?: number | undefined;
        stopSequences?: string[] | undefined;
    }, {
        location?: string | undefined;
        version?: string | undefined;
        safetySettings?: {
            category: HarmCategory;
            threshold: HarmBlockThreshold;
        }[] | undefined;
        vertexRetrieval?: {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        } | undefined;
        googleSearchRetrieval?: {
            disableAttribution?: boolean | undefined;
        } | undefined;
        functionCallingConfig?: {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        } | undefined;
        temperature?: number | undefined;
        maxOutputTokens?: number | undefined;
        topK?: number | undefined;
        topP?: number | undefined;
        stopSequences?: string[] | undefined;
    }>>;
    readonly 'gemini-1.0-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">>;
    }, {
        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.ZodNativeEnum<typeof HarmCategory>;
            threshold: z.ZodNativeEnum<typeof HarmBlockThreshold>;
        }, "strip", z.ZodTypeAny, {
            category: HarmCategory;
            threshold: HarmBlockThreshold;
        }, {
            category: HarmCategory;
            threshold: HarmBlockThreshold;
        }>, "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;
        }>>;
    }>, "strip", z.ZodTypeAny, {
        location?: string | undefined;
        version?: string | undefined;
        safetySettings?: {
            category: HarmCategory;
            threshold: HarmBlockThreshold;
        }[] | undefined;
        vertexRetrieval?: {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        } | undefined;
        googleSearchRetrieval?: {
            disableAttribution?: boolean | undefined;
        } | undefined;
        functionCallingConfig?: {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        } | undefined;
        temperature?: number | undefined;
        maxOutputTokens?: number | undefined;
        topK?: number | undefined;
        topP?: number | undefined;
        stopSequences?: string[] | undefined;
    }, {
        location?: string | undefined;
        version?: string | undefined;
        safetySettings?: {
            category: HarmCategory;
            threshold: HarmBlockThreshold;
        }[] | undefined;
        vertexRetrieval?: {
            datastore: {
                dataStoreId: string;
                location?: string | undefined;
                projectId?: string | undefined;
            };
            disableAttribution?: boolean | undefined;
        } | undefined;
        googleSearchRetrieval?: {
            disableAttribution?: boolean | undefined;
        } | undefined;
        functionCallingConfig?: {
            mode?: "MODE_UNSPECIFIED" | "AUTO" | "ANY" | "NONE" | undefined;
            allowedFunctionNames?: string[] | undefined;
        } | undefined;
        temperature?: number | undefined;
        maxOutputTokens?: number | undefined;
        topK?: number | undefined;
        topP?: number | undefined;
        stopSequences?: string[] | undefined;
    }>>;
};
/** @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, type GeminiConfig as G, type PluginOptions as P, SUPPORTED_V1_MODELS as S, gemini10Pro as a, gemini15Flash as b, gemini15Pro as c, gemini20Flash as d, gemini20Flash001 as e, gemini20FlashLite as f, gemini as g, gemini20FlashLitePreview0205 as h, gemini20ProExp0205 as i, gemini25ProExp0325 as j, gemini25ProPreview0325 as k, GeminiConfigSchema as l, type GeminiVersionString as m, GENERIC_GEMINI_MODEL as n, SUPPORTED_V15_MODELS as o, SUPPORTED_GEMINI_MODELS as p, toGeminiSystemInstruction as q, toGeminiMessage as r, fromGeminiCandidate as s, toGeminiTool as t, cleanSchema as u, defineGeminiKnownModel as v, defineGeminiModel as w };
