/**
 * Type definitions for Agent elements
 */
import { IElementMetadata } from '../../types/elements/index.js';
import { DecisionFramework, RiskTolerance, GoalPriority, GoalStatus, EisenhowerQuadrant, DecisionOutcome, RiskLevel } from './constants.js';
export { DecisionFramework, RiskTolerance, GoalPriority, GoalStatus, EisenhowerQuadrant, DecisionOutcome, RiskLevel } from './constants.js';
/**
 * Agent goal structure
 */
export interface AgentGoal {
    id: string;
    description: string;
    priority: GoalPriority;
    status: GoalStatus;
    importance: number;
    urgency: number;
    eisenhowerQuadrant?: EisenhowerQuadrant;
    createdAt: Date;
    updatedAt: Date;
    completedAt?: Date;
    dependencies?: string[];
    riskLevel?: RiskLevel;
    estimatedEffort?: number;
    actualEffort?: number;
    notes?: string;
}
/**
 * Agent decision structure
 */
export interface AgentDecision {
    id: string;
    goalId: string;
    timestamp: Date;
    decision: string;
    reasoning: string;
    framework: DecisionFramework;
    confidence: number;
    riskAssessment: {
        level: RiskLevel;
        factors: string[];
        mitigations?: string[];
    };
    outcome?: DecisionOutcome;
    impact?: string;
    performanceMetrics?: {
        decisionTimeMs?: number;
        frameworkTimeMs?: number;
        riskAssessmentTimeMs?: number;
    };
}
/**
 * Agent state structure
 */
export interface AgentState {
    goals: AgentGoal[];
    decisions: AgentDecision[];
    context: Record<string, any>;
    lastActive: Date;
    sessionCount: number;
    successRate?: number;
    averageDecisionTime?: number;
}
/**
 * Agent metadata extends base element metadata
 */
export interface AgentMetadata extends IElementMetadata {
    decisionFramework?: DecisionFramework;
    specializations?: string[];
    riskTolerance?: RiskTolerance;
    learningEnabled?: boolean;
    maxConcurrentGoals?: number;
    ruleEngineConfig?: any;
}
/**
 * Performance metrics for agents
 */
export interface AgentPerformanceMetrics {
    successRate: number;
    averageCompletionTime: number;
    goalsCompleted: number;
    goalsInProgress: number;
    decisionAccuracy: number;
}
/**
 * Input structure for creating goals
 */
export interface AgentGoalInput {
    description: string;
    priority?: GoalPriority;
    importance?: number;
    urgency?: number;
    dependencies?: string[];
    riskLevel?: RiskLevel;
    estimatedEffort?: number;
    notes?: string;
}
//# sourceMappingURL=types.d.ts.map