import type { AIProviderName } from "../core/types.js";
import type { LanguageModelV1 } from "ai";
import type { StreamOptions, StreamResult } from "../types/streamTypes.js";
import type { ZodType, ZodTypeDef } from "zod";
import type { Schema } from "ai";
import { BaseProvider } from "../core/baseProvider.js";
/**
 * Ollama Provider v2 - BaseProvider Implementation
 *
 * PHASE 3.7: BaseProvider wrap around existing custom Ollama implementation
 *
 * Features:
 * - Extends BaseProvider for shared functionality
 * - Preserves custom OllamaLanguageModel implementation
 * - Local model management and health checking
 * - Enhanced error handling with Ollama-specific guidance
 */
export declare class OllamaProvider extends BaseProvider {
    private ollamaModel;
    private baseUrl;
    private timeout;
    constructor(modelName?: string);
    protected getProviderName(): AIProviderName;
    protected getDefaultModel(): string;
    /**
     * Returns the Vercel AI SDK model instance for Ollama
     * The OllamaLanguageModel implements LanguageModelV1 interface properly
     */
    protected getAISDKModel(): LanguageModelV1;
    /**
     * Ollama tool/function calling support is currently disabled due to integration issues.
     *
     * **Current Issues:**
     * 1. The OllamaLanguageModel from @ai-sdk/provider-utils doesn't properly integrate
     *    with BaseProvider's tool calling mechanism
     * 2. Ollama models require specific prompt formatting for function calls that differs
     *    from the standardized AI SDK format
     * 3. Tool response parsing and execution flow needs custom implementation
     *
     * **What's needed to enable tool support:**
     * - Create a custom OllamaLanguageModel wrapper that handles tool schema formatting
     * - Implement Ollama-specific tool calling prompt templates
     * - Add proper response parsing for Ollama's function call format
     * - Test with models that support function calling (llama3.1, mistral, etc.)
     *
     * **Tracking:**
     * - See BaseProvider tool integration patterns in other providers
     * - Monitor Ollama function calling documentation: https://ollama.com/blog/tool-support
     * - Track AI SDK updates for better Ollama integration
     *
     * @returns false to disable tools by default
     */
    supportsTools(): boolean;
    protected executeStream(options: StreamOptions, analysisSchema?: ZodType<unknown, ZodTypeDef, unknown> | Schema<unknown>): Promise<StreamResult>;
    private createOllamaStream;
    protected handleProviderError(error: unknown): Error;
    private validateStreamOptions;
    /**
     * Check if Ollama service is healthy and accessible
     */
    private checkOllamaHealth;
    /**
     * Get available models from Ollama
     */
    getAvailableModels(): Promise<string[]>;
    /**
     * Check if a specific model is available
     */
    isModelAvailable(modelName: string): Promise<boolean>;
}
export default OllamaProvider;
