import { z, EmbedderReference } from 'genkit';

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

declare const TextEmbeddingConfigSchema: z.ZodObject<{
    dimensions: z.ZodOptional<z.ZodNumber>;
    encodingFormat: z.ZodOptional<z.ZodUnion<[z.ZodLiteral<"float">, z.ZodLiteral<"base64">]>>;
}, "strip", z.ZodTypeAny, {
    dimensions?: number | undefined;
    encodingFormat?: "float" | "base64" | undefined;
}, {
    dimensions?: number | undefined;
    encodingFormat?: "float" | "base64" | undefined;
}>;
declare const SUPPORTED_EMBEDDING_MODELS: {
    'text-embedding-3-small': EmbedderReference<z.ZodObject<{
        dimensions: z.ZodOptional<z.ZodNumber>;
        encodingFormat: z.ZodOptional<z.ZodUnion<[z.ZodLiteral<"float">, z.ZodLiteral<"base64">]>>;
    }, "strip", z.ZodTypeAny, {
        dimensions?: number | undefined;
        encodingFormat?: "float" | "base64" | undefined;
    }, {
        dimensions?: number | undefined;
        encodingFormat?: "float" | "base64" | undefined;
    }>>;
    'text-embedding-3-large': EmbedderReference<z.ZodObject<{
        dimensions: z.ZodOptional<z.ZodNumber>;
        encodingFormat: z.ZodOptional<z.ZodUnion<[z.ZodLiteral<"float">, z.ZodLiteral<"base64">]>>;
    }, "strip", z.ZodTypeAny, {
        dimensions?: number | undefined;
        encodingFormat?: "float" | "base64" | undefined;
    }, {
        dimensions?: number | undefined;
        encodingFormat?: "float" | "base64" | undefined;
    }>>;
    'text-embedding-ada-002': EmbedderReference<z.ZodObject<{
        dimensions: z.ZodOptional<z.ZodNumber>;
        encodingFormat: z.ZodOptional<z.ZodUnion<[z.ZodLiteral<"float">, z.ZodLiteral<"base64">]>>;
    }, "strip", z.ZodTypeAny, {
        dimensions?: number | undefined;
        encodingFormat?: "float" | "base64" | undefined;
    }, {
        dimensions?: number | undefined;
        encodingFormat?: "float" | "base64" | undefined;
    }>>;
};

export { SUPPORTED_EMBEDDING_MODELS, TextEmbeddingConfigSchema };
