/**
 * Telemetry Handler Module
 *
 * Handles analytics, evaluation and performance metrics.
 * Extracted from BaseProvider to follow Single Responsibility Principle.
 *
 * Responsibilities:
 * - Analytics creation and tracking
 * - Evaluation generation
 * - Performance metrics recording
 * - Cost calculation
 *
 * @module core/modules/TelemetryHandler
 */
import type { NeuroLink } from "../../neurolink.js";
import type { StreamOptions, AIProviderName, AnalyticsData, EnhancedGenerateResult, EvaluationData, MemoryToolCallRecord, MemoryToolResultRecord, RawUsageObject, TextGenerationOptions, TokenUsage } from "../../types/index.js";
/**
 * TelemetryHandler class - Handles analytics and telemetry for AI providers
 */
export declare class TelemetryHandler {
    private readonly providerName;
    private readonly modelName;
    private readonly neurolink?;
    constructor(providerName: AIProviderName, modelName: string, neurolink?: NeuroLink | undefined);
    /**
     * Create analytics for a generation result
     */
    createAnalytics(result: EnhancedGenerateResult, responseTime: number, context?: Record<string, unknown>): Promise<AnalyticsData>;
    /**
     * Create evaluation for a generation result
     */
    createEvaluation(result: EnhancedGenerateResult, options: TextGenerationOptions): Promise<EvaluationData>;
    /**
     * Record performance metrics for a generation
     */
    recordPerformanceMetrics(usage: RawUsageObject | undefined, responseTime: number): Promise<void>;
    /**
     * Estimate cost only from known per-model rates. Unknown pricing remains
     * absent from cost metrics instead of using another model's default rate.
     */
    calculateActualCost(usage: TokenUsage): Promise<number | undefined>;
    /**
     * Handle tool execution storage if available
     */
    handleToolExecutionStorage(toolCalls: MemoryToolCallRecord[], toolResults: MemoryToolResultRecord[], options: TextGenerationOptions | StreamOptions, currentTime: Date): Promise<void>;
}
