export interface TaskCompletionValidator {
    validateCompletion(originalTask: string, execution: unknown, toolResults: ToolResult[]): Promise<CompletionValidationResult>;
}
export interface CompletionValidationResult {
    isComplete: boolean;
    confidence: number;
    issues: string[];
    recommendations: string[];
}
export interface ToolFailure {
    type: FailureType;
    pattern: string;
    message: string;
    severity: 'error' | 'warning' | 'info';
    toolName?: string;
    timestamp?: Date;
    lineNumber?: number;
    context?: string[];
}
export type FailureType = 'generic_error' | 'file_not_found' | 'permission_denied' | 'command_not_found' | 'syntax_error' | 'type_error' | 'reference_error' | 'module_not_found' | 'git_error' | 'git_merge_conflict' | 'typescript_error' | 'build_error' | 'test_failure' | 'network_error' | 'api_error' | 'resource_error' | 'process_error' | 'tool_error' | 'string_not_found' | 'npm_error' | 'file_already_exists' | 'not_a_directory' | 'is_a_directory' | 'warning' | 'deprecation' | 'no_changes' | 'hint' | 'tip' | 'note';
export interface ObjectiveValidationResult {
    isComplete: boolean;
    confidence: number;
    issues: string[];
    recommendations: string[];
    allCriteriaMet?: boolean;
    unmetCriteria?: string[];
}
export interface DetailedErrorReport {
    taskStatus: 'completed' | 'partial' | 'failed';
    toolFailures: ToolFailure[];
    recommendations: string[];
    retryable: boolean;
    confidence: number;
    errorCode?: string;
    details?: string;
}
export interface ToolResult {
    toolName: string;
    success: boolean;
    output?: string;
    error?: string;
    duration?: number;
}
