/**
 * NeuroLink Unified Evaluation System
 */
import type { EvaluationData } from "./types.js";
export interface UnifiedEvaluationResult extends EvaluationData {
    domainAlignment?: number;
    terminologyAccuracy?: number;
    toolEffectiveness?: number;
    contextUtilization?: {
        conversationUsed: boolean;
        toolsUsed: boolean;
        domainKnowledgeUsed: boolean;
    };
    evaluationContext?: {
        domain: string;
        toolsEvaluated: string[];
        conversationTurns: number;
    };
    isOffTopic: boolean;
    alertSeverity: "low" | "medium" | "high" | "none";
    reasoning: string;
}
export interface UnifiedEvaluationContext {
    userQuery: string;
    aiResponse: string;
    context?: Record<string, unknown>;
    primaryDomain?: string;
    assistantRole?: string;
    conversationHistory?: Array<{
        role: "user" | "assistant";
        content: string;
        timestamp?: string;
    }>;
    toolUsage?: Array<{
        toolName: string;
        input: unknown;
        output: unknown;
        executionTime: number;
    }>;
    expectedOutcome?: string;
    evaluationCriteria?: string[];
}
/**
 * Get default evaluation when evaluation fails
 */
declare function getDefaultUnifiedEvaluation(reason: string, evaluationTime: number, context: UnifiedEvaluationContext): UnifiedEvaluationResult;
/**
 * Parse unified evaluation result from text response
 */
declare function parseUnifiedEvaluationResult(response: string, context: UnifiedEvaluationContext): Partial<UnifiedEvaluationResult>;
/**
 * Main unified evaluation function
 */
export declare function generateUnifiedEvaluation(context: UnifiedEvaluationContext): Promise<UnifiedEvaluationResult>;
export declare function evaluateResponse(responseOrContext: unknown, contextOrUserQuery?: unknown, userQuery?: unknown, providedContexts?: unknown, options?: unknown, additionalArgs?: unknown): Promise<unknown>;
export { getDefaultUnifiedEvaluation, parseUnifiedEvaluationResult };
