import type { Task } from './types';
import { Priority } from './types';
/**
 * Task prioritization result
 */
interface PrioritizationResult {
    /** Original priority */
    originalPriority: Priority;
    /** Adjusted priority */
    adjustedPriority: Priority;
    /** Reasoning for adjustment */
    reasoning: string;
    /** Confidence score (0-1) */
    confidence: number;
}
/**
 * Dynamic task prioritizer
 *
 * Adjusts task priorities based on:
 * - Historical execution success/failure
 * - Dependency relationships
 * - File change frequency
 * - Task age
 * - Cluster of similar failures
 */
export declare class TaskPrioritizer {
    #private;
    /**
     * Prioritize a list of tasks
     */
    prioritizeTasks(tasks: Task[], allTasks: Task[]): Task[];
    /**
     * Calculate dynamic priority for a task
     */
    calculatePriority(task: Task, allTasks: Task[]): PrioritizationResult;
    /**
     * Gather priority adjustment factors
     */
    private gatherFactors;
    /**
     * Calculate priority adjustment score
     */
    private calculateAdjustment;
    /**
     * Apply adjustment to original priority
     */
    private applyAdjustment;
    /**
     * Generate human-readable reasoning
     */
    private generateReasoning;
    /**
     * Calculate confidence score
     */
    private calculateConfidence;
    /**
     * Check if task is in a problematic area
     */
    private isProblematicArea;
    /**
     * Record task execution result
     */
    recordExecution(taskId: string, success: boolean): void;
    /**
     * Record file change
     */
    recordFileChange(file: string): void;
    /**
     * Reset all history
     */
    resetHistory(): void;
    /**
     * Get high priority tasks
     */
    getHighPriorityTasks(tasks: Task[]): Task[];
    /**
     * Get low priority tasks
     */
    getLowPriorityTasks(tasks: Task[]): Task[];
    /**
     * Get critical tasks
     */
    getCriticalTasks(tasks: Task[]): Task[];
    /**
     * Get prioritization statistics
     */
    getStatistics(): {
        totalTasksTracked: number;
        averageSuccessRate: number;
        mostProblematicFiles: Array<{
            file: string;
            failures: number;
        }>;
    };
}
export {};
//# sourceMappingURL=task-prioritizer.d.ts.map