import { JSONObject, JSONValue, LanguageModelV4Content, LanguageModelV4FinishReason, LanguageModelV4Usage, SharedV4ProviderMetadata, SharedV4Warning } from '@ai-sdk/provider';
import { ChatResponse, Message as OllamaMessage, Tool, ToolCall } from 'ollama';
import { executeReliableToolCalls, type ReliableToolCallResult } from '../utils/tool-calling-reliability.js';
export type GenerateResult = {
    content: LanguageModelV4Content[];
    finishReason: LanguageModelV4FinishReason;
    usage: LanguageModelV4Usage;
    providerMetadata?: SharedV4ProviderMetadata;
    request?: {
        body?: unknown;
    };
    response?: {
        id?: string;
        timestamp?: Date;
        modelId?: string;
    };
    warnings: SharedV4Warning[];
};
export interface ParsedToolCall {
    toolName: string;
    input: Record<string, unknown>;
    rawInput: unknown;
}
/**
 * Parse Ollama tool calls into a normalized format.
 * Uses the ToolCall type from the Ollama library for type safety.
 */
export declare function parseOllamaToolCalls(toolCalls: ToolCall[] | undefined): ParsedToolCall[];
export declare function buildContent(reasoning: string | undefined, includeReasoning: boolean, text: string | undefined, toolCalls: ParsedToolCall[]): LanguageModelV4Content[];
/**
 * Response fields shared by every `providerMetadata.ollama` payload. Callers
 * add their own keys (reliability details, etc.) on top.
 */
export declare function ollamaResponseDetails(response: ChatResponse): Record<string, JSONValue>;
/**
 * Create a LanguageModelV4Usage object from token counts.
 * V4 uses structured objects for inputTokens and outputTokens.
 */
export declare function createUsage(inputTokenCount?: number, outputTokenCount?: number, raw?: JSONObject): LanguageModelV4Usage;
/**
 * Usage for a model call, summed across the responses that made it up. Token
 * counts feed the normalised fields; every Ollama counter and timing is also
 * summed onto `usage.raw` so callers can read the provider's own shape.
 */
export declare function aggregateUsage(...responses: ChatResponse[]): LanguageModelV4Usage;
export declare function buildGenerationResult(parameters: {
    modelId: string;
    messages: OllamaMessage[];
    ollamaOptions: Record<string, unknown>;
    format?: string | Record<string, unknown>;
    ollamaTools?: Tool[];
    warnings: SharedV4Warning[];
    response: ChatResponse;
    followUpResponse?: ChatResponse;
    parsedToolCalls: ParsedToolCall[];
    completionMethod: ReliableToolCallResult['completionMethod'];
    retryCount: number;
    errors: string[];
    toolResults?: Awaited<ReturnType<typeof executeReliableToolCalls>>;
    reliable: boolean;
    finalTextOverride?: string;
    keep_alive?: string | number;
    think?: boolean | 'low' | 'medium' | 'high';
}): GenerateResult;
export declare function buildObjectGenerationResult(parameters: {
    modelId: string;
    messages: OllamaMessage[];
    ollamaOptions: Record<string, unknown>;
    format?: string | Record<string, unknown>;
    tools?: Tool[];
    warnings: SharedV4Warning[];
    response: ChatResponse;
    text: string;
    recoveryMethod: 'natural' | 'retry' | 'fallback' | 'type_fix' | 'text_repair';
    retryCount: number;
    errors?: string[];
    keep_alive?: string | number;
}): GenerateResult;
//# sourceMappingURL=chat-result.d.ts.map