import { RerankerReference, z, RerankerAction } from 'genkit';
import { VertexRerankerClientOptions } from './types.mjs';
import 'google-auth-library';

/**
 * 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 VertexRerankerConfigSchema: z.ZodObject<{
    topN: z.ZodOptional<z.ZodNumber>;
    ignoreRecordDetailsInResponse: z.ZodOptional<z.ZodBoolean>;
    location: z.ZodOptional<z.ZodString>;
}, "passthrough", z.ZodTypeAny, z.objectOutputType<{
    topN: z.ZodOptional<z.ZodNumber>;
    ignoreRecordDetailsInResponse: z.ZodOptional<z.ZodBoolean>;
    location: z.ZodOptional<z.ZodString>;
}, z.ZodTypeAny, "passthrough">, z.objectInputType<{
    topN: z.ZodOptional<z.ZodNumber>;
    ignoreRecordDetailsInResponse: z.ZodOptional<z.ZodBoolean>;
    location: z.ZodOptional<z.ZodString>;
}, z.ZodTypeAny, "passthrough">>;
type VertexRerankerConfigSchemaType = typeof VertexRerankerConfigSchema;
type VertexRerankerConfig = z.infer<VertexRerankerConfigSchemaType>;
declare const GENERIC_MODEL: RerankerReference<z.ZodObject<{
    topN: z.ZodOptional<z.ZodNumber>;
    ignoreRecordDetailsInResponse: z.ZodOptional<z.ZodBoolean>;
    location: z.ZodOptional<z.ZodString>;
}, "passthrough", z.ZodTypeAny, z.objectOutputType<{
    topN: z.ZodOptional<z.ZodNumber>;
    ignoreRecordDetailsInResponse: z.ZodOptional<z.ZodBoolean>;
    location: z.ZodOptional<z.ZodString>;
}, z.ZodTypeAny, "passthrough">, z.objectInputType<{
    topN: z.ZodOptional<z.ZodNumber>;
    ignoreRecordDetailsInResponse: z.ZodOptional<z.ZodBoolean>;
    location: z.ZodOptional<z.ZodString>;
}, z.ZodTypeAny, "passthrough">>>;
declare const DEFAULT_MODEL_NAME = "semantic-ranker-default@latest";
declare const KNOWN_MODELS: {
    readonly 'semantic-ranker-default@latest': RerankerReference<z.ZodObject<{
        topN: z.ZodOptional<z.ZodNumber>;
        ignoreRecordDetailsInResponse: z.ZodOptional<z.ZodBoolean>;
        location: z.ZodOptional<z.ZodString>;
    }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
        topN: z.ZodOptional<z.ZodNumber>;
        ignoreRecordDetailsInResponse: z.ZodOptional<z.ZodBoolean>;
        location: z.ZodOptional<z.ZodString>;
    }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
        topN: z.ZodOptional<z.ZodNumber>;
        ignoreRecordDetailsInResponse: z.ZodOptional<z.ZodBoolean>;
        location: z.ZodOptional<z.ZodString>;
    }, z.ZodTypeAny, "passthrough">>>;
    readonly 'semantic-ranker-default-004': RerankerReference<z.ZodObject<{
        topN: z.ZodOptional<z.ZodNumber>;
        ignoreRecordDetailsInResponse: z.ZodOptional<z.ZodBoolean>;
        location: z.ZodOptional<z.ZodString>;
    }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
        topN: z.ZodOptional<z.ZodNumber>;
        ignoreRecordDetailsInResponse: z.ZodOptional<z.ZodBoolean>;
        location: z.ZodOptional<z.ZodString>;
    }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
        topN: z.ZodOptional<z.ZodNumber>;
        ignoreRecordDetailsInResponse: z.ZodOptional<z.ZodBoolean>;
        location: z.ZodOptional<z.ZodString>;
    }, z.ZodTypeAny, "passthrough">>>;
    readonly 'semantic-ranker-fast-004': RerankerReference<z.ZodObject<{
        topN: z.ZodOptional<z.ZodNumber>;
        ignoreRecordDetailsInResponse: z.ZodOptional<z.ZodBoolean>;
        location: z.ZodOptional<z.ZodString>;
    }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
        topN: z.ZodOptional<z.ZodNumber>;
        ignoreRecordDetailsInResponse: z.ZodOptional<z.ZodBoolean>;
        location: z.ZodOptional<z.ZodString>;
    }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
        topN: z.ZodOptional<z.ZodNumber>;
        ignoreRecordDetailsInResponse: z.ZodOptional<z.ZodBoolean>;
        location: z.ZodOptional<z.ZodString>;
    }, z.ZodTypeAny, "passthrough">>>;
    readonly 'semantic-ranker-default-003': RerankerReference<z.ZodObject<{
        topN: z.ZodOptional<z.ZodNumber>;
        ignoreRecordDetailsInResponse: z.ZodOptional<z.ZodBoolean>;
        location: z.ZodOptional<z.ZodString>;
    }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
        topN: z.ZodOptional<z.ZodNumber>;
        ignoreRecordDetailsInResponse: z.ZodOptional<z.ZodBoolean>;
        location: z.ZodOptional<z.ZodString>;
    }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
        topN: z.ZodOptional<z.ZodNumber>;
        ignoreRecordDetailsInResponse: z.ZodOptional<z.ZodBoolean>;
        location: z.ZodOptional<z.ZodString>;
    }, z.ZodTypeAny, "passthrough">>>;
    readonly 'semantic-ranker-default-002': RerankerReference<z.ZodObject<{
        topN: z.ZodOptional<z.ZodNumber>;
        ignoreRecordDetailsInResponse: z.ZodOptional<z.ZodBoolean>;
        location: z.ZodOptional<z.ZodString>;
    }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
        topN: z.ZodOptional<z.ZodNumber>;
        ignoreRecordDetailsInResponse: z.ZodOptional<z.ZodBoolean>;
        location: z.ZodOptional<z.ZodString>;
    }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
        topN: z.ZodOptional<z.ZodNumber>;
        ignoreRecordDetailsInResponse: z.ZodOptional<z.ZodBoolean>;
        location: z.ZodOptional<z.ZodString>;
    }, z.ZodTypeAny, "passthrough">>>;
};
type KnownModels = keyof typeof KNOWN_MODELS;
type RerankerModelName = `semantic-ranker-${string}`;
declare function isRerankerModelName(value?: string): value is RerankerModelName;
declare function reranker(version: string, options?: VertexRerankerConfig): RerankerReference<VertexRerankerConfigSchemaType>;
declare function listKnownRerankers(clientOptions: VertexRerankerClientOptions): RerankerAction[];
declare function defineReranker(name: string, clientOptions: VertexRerankerClientOptions): RerankerAction;

export { DEFAULT_MODEL_NAME, GENERIC_MODEL, KNOWN_MODELS, type KnownModels, type RerankerModelName, type VertexRerankerConfig, VertexRerankerConfigSchema, type VertexRerankerConfigSchemaType, defineReranker, isRerankerModelName, listKnownRerankers, reranker };
