/**
 * Task Evaluator
 * Evaluates task outputs to extract insights and assess quality
 * Optimized for efficient entity extraction and quality assessment
 */
import { BaseAgent } from '../../BaseAgent.js';
import { Task } from '../../../task/Task.js';
import { TaskEvaluation } from '../types/index.js';
/**
 * Entity extraction result
 */
export interface ExtractedEntity {
    name: string;
    type: string;
    description: string;
    relationships: string[];
}
/**
 * Evaluation options
 */
export interface EvaluationOptions {
    /** Maximum number of entities to extract */
    maxEntities?: number;
    /** Custom quality assessment function */
    qualityAssessor?: (text: string, task: Task) => Promise<number>;
    /** Custom suggestion generator */
    suggestionGenerator?: (text: string, task: Task) => Promise<string[]>;
    /** Custom entity extractor */
    entityExtractor?: (text: string) => Promise<ExtractedEntity[]>;
}
/**
 * Evaluates task outputs to extract entities, assess quality, and generate suggestions
 * Optimized for performance and memory efficiency
 */
export declare class TaskEvaluator {
    private agent;
    private maxEntities;
    private qualityAssessor?;
    private suggestionGenerator?;
    private entityExtractor?;
    /**
     * Create a new TaskEvaluator
     * @param agent Agent that executed the task
     * @param options Evaluation options
     */
    constructor(agent: BaseAgent, options?: EvaluationOptions);
    /**
     * Evaluate a task output
     * @param task Task that was executed
     * @param outputText Output text to evaluate
     * @returns Evaluation result or null if evaluation failed
     */
    evaluate(task: Task, outputText: string): Promise<TaskEvaluation | null>;
    /**
     * Assess the quality of the output
     * @param outputText Output text to assess
     * @param task Task that was executed
     * @returns Quality score between 0 and 1
     */
    private assessQuality;
    /**
     * Generate suggestions for improving the output
     * @param outputText Output text to generate suggestions for
     * @param task Task that was executed
     * @returns Array of suggestions
     */
    private generateSuggestions;
    /**
     * Extract entities from the output text
     * @param outputText Output text to extract entities from
     * @returns Array of extracted entities
     */
    private extractEntities;
    /**
     * Extract keywords from a text
     * @param text Text to extract keywords from
     * @returns Array of keywords
     */
    private extractKeywords;
}
//# sourceMappingURL=TaskEvaluator.d.ts.map