import { RerankingModelV4, RerankingModelV4CallOptions } from '@ai-sdk/provider';
import { FetchFunction } from '@ai-sdk/provider-utils';
import { z } from 'zod';
/**
 * Configuration for the Ollama reranking model
 */
export interface OllamaRerankingConfig {
    provider: string;
    baseURL: string;
    headers: () => Record<string, string | undefined>;
    fetch?: FetchFunction;
}
/**
 * Settings for configuring Ollama reranking models
 */
export interface OllamaRerankingSettings {
    /**
     * Custom instruction for the reranker model.
     * Defaults to the model's built-in instruction (usually "Please judge relevance").
     */
    instruction?: string;
}
/**
 * Schema for validating Ollama reranking provider options
 */
export declare const ollamaRerankingProviderOptionsSchema: z.ZodObject<{
    instruction: z.ZodOptional<z.ZodString>;
}, z.core.$strip>;
/**
 * Ollama provider options for reranking calls
 */
export type OllamaRerankingProviderOptions = z.infer<typeof ollamaRerankingProviderOptionsSchema>;
/**
 * Native Ollama Reranking Model
 *
 * **WAITING FOR OFFICIAL SUPPORT**
 *
 * This implementation uses Ollama's /api/rerank endpoint from PR #11389.
 * As of December 2024, this PR has NOT been merged into Ollama.
 *
 * **For a working solution, use `OllamaEmbeddingRerankingModel` instead:**
 * ```ts
 * import { ollama } from 'ai-sdk-ollama';
 * import { rerank } from 'ai';
 *
 * const result = await rerank({
 *   model: ollama.embeddingReranking('bge-m3'),
 *   query: 'What is machine learning?',
 *   documents: [...],
 * });
 * ```
 *
 * This native implementation will work once Ollama adds reranking support:
 * @see https://github.com/ollama/ollama/pull/11389
 *
 * @example
 * ```ts
 * // NOT YET WORKING - requires Ollama reranking API
 * import { ollama } from 'ai-sdk-ollama';
 * import { rerank } from 'ai';
 *
 * const { rerankedDocuments } = await rerank({
 *   model: ollama.rerankingModel('bge-reranker-v2-m3'),
 *   query: 'What is machine learning?',
 *   documents: [
 *     'Machine learning is a subset of AI...',
 *     'The weather today is sunny...',
 *     'Deep learning uses neural networks...',
 *   ],
 *   topN: 2,
 * });
 * ```
 */
export declare class OllamaRerankingModel implements RerankingModelV4 {
    readonly specificationVersion: 'v4';
    readonly modelId: string;
    private readonly config;
    private readonly settings;
    constructor(modelId: string, settings: OllamaRerankingSettings, config: OllamaRerankingConfig);
    get provider(): string;
    doRerank({ documents, headers, query, topN, abortSignal, providerOptions, }: RerankingModelV4CallOptions): Promise<Awaited<ReturnType<RerankingModelV4['doRerank']>>>;
}
//# sourceMappingURL=reranking-model.d.ts.map