import { ModelReference, z } from 'genkit';
import { GenkitPluginV2 } from 'genkit/plugin';
import { KnownModels, AnthropicModelName, AnthropicConfig, AnthropicConfigSchemaType } from './anthropic.js';
import { KnownModels as KnownModels$2, LlamaModelName, LlamaConfig, LlamaConfigSchemaType } from './llama.js';
import { KnownModels as KnownModels$1, MistralModelName, MistralConfig, MistralConfigSchemaType } from './mistral.js';
import { PluginOptions } from './types.js';
import '@anthropic-ai/sdk/resources/messages';
import 'genkit/model';
import 'google-auth-library';
import '@mistralai/mistralai-gcp/models/components/index.js';
import '../../types-B3i-Lt7D.js';
import '@google-cloud/vertexai';

/**
 * Copyright 2025 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.
 */

/**
 * Add Google Cloud Vertex AI Model Garden to Genkit.
 */
declare function vertexModelGardenPlugin(options: PluginOptions): GenkitPluginV2;
type VertexModelGardenPlugin = {
    (pluginOptions?: PluginOptions): GenkitPluginV2;
    model(name: KnownModels | (AnthropicModelName & {}), config?: AnthropicConfig): ModelReference<AnthropicConfigSchemaType>;
    model(name: KnownModels$1 | (MistralModelName & {}), config: MistralConfig): ModelReference<MistralConfigSchemaType>;
    model(name: KnownModels$2 | (LlamaModelName & {}), config: LlamaConfig): ModelReference<LlamaConfigSchemaType>;
    model(name: string, config?: any): ModelReference<z.ZodTypeAny>;
};
declare const vertexModelGarden: VertexModelGardenPlugin;

export { PluginOptions, type VertexModelGardenPlugin, vertexModelGarden, vertexModelGardenPlugin };
