import type { HTMLAttributes } from 'svelte/elements';
export type FeedbackType = 'general' | 'bug' | 'feature' | 'workflow' | 'performance' | 'usability';
export type FeedbackCategory = 'usability' | 'performance' | 'accuracy' | 'workflow' | 'integration' | 'suggestion';
export type FeedbackSeverity = 'low' | 'medium' | 'high';
export type FeedbackUrgency = 'low' | 'medium' | 'high';
export type FeedbackStatus = 'submitted' | 'reviewed' | 'in-progress' | 'resolved' | 'closed';
export type Priority = 'low' | 'medium' | 'high';
export type Impact = 'low' | 'medium' | 'high';
export type ImplementationStatus = 'pending' | 'in-progress' | 'completed' | 'rejected';
export type LearningCategory = 'pattern-detection' | 'user-behavior' | 'system-optimization' | 'workflow-improvement' | 'success-pattern' | 'implementation';
export interface FeedbackEntry {
    id: string;
    type: FeedbackType;
    category: FeedbackCategory;
    title: string;
    description: string;
    severity: FeedbackSeverity;
    urgency: FeedbackUrgency;
    rating?: number;
    context: {
        currentWorkflow?: string;
        stepInProcess?: string;
        agentsInvolved?: string[];
        expectedOutcome?: string;
        actualOutcome?: string;
        timeSpent?: number;
        errorMessages?: string[];
        userActions?: string[];
    };
    tags: string[];
    attachments: string[];
    createdAt: Date;
    updatedAt?: Date;
    resolvedAt?: Date;
    status: FeedbackStatus;
    assignedTo?: string;
    priority?: Priority;
    userId: string;
    userAgent?: string;
    sessionId?: string;
    resolution?: {
        summary: string;
        changes: string[];
        resolvedBy: string;
        followUpRequired: boolean;
        estimatedImpact: string;
    };
    impact?: {
        usersAffected: number;
        workflowsImpacted: string[];
        businessValue: 'low' | 'medium' | 'high';
    };
}
export interface WorkflowAssessment {
    id: string;
    workflowName: string;
    overallRating: number;
    efficiency: number;
    accuracy: number;
    userExperience: number;
    reliability?: number;
    strengths: string[];
    weaknesses: string[];
    specificIssues: string[];
    improvementAreas: string[];
    additionalComments: string;
    usageFrequency?: 'daily' | 'weekly' | 'monthly' | 'rarely';
    userExpertiseLevel?: 'beginner' | 'intermediate' | 'advanced';
    taskComplexity?: 'simple' | 'moderate' | 'complex';
    metrics?: {
        averageCompletionTime: number;
        successRate: number;
        errorRate: number;
        stepCount: number;
        userSatisfactionScore: number;
    };
    createdAt: Date;
    assessmentDuration?: number;
    userId: string;
    workflowVersion?: string;
    comparison?: {
        previousRating?: number;
        improvementAreas?: string[];
        regressionAreas?: string[];
    };
}
export interface ImprovementSuggestion {
    id: string;
    title: string;
    description: string;
    category: FeedbackCategory;
    priority: Priority;
    impact: Impact;
    scope: 'feature' | 'workflow' | 'system' | 'ui' | 'performance';
    estimatedEffort: 'small' | 'medium' | 'large' | 'extra-large';
    status: ImplementationStatus;
    relatedFeedback: string[];
    relatedWorkflows?: string[];
    affectedUsers?: number;
    implementationStarted?: Date;
    implementationCompleted?: Date;
    implementationNotes?: string[];
    successCriteria?: {
        metrics: string[];
        targets: Record<string, number>;
        measurementPeriod: number;
    };
    createdAt: Date;
    createdBy: string;
    lastUpdated?: Date;
    businessJustification?: {
        problemStatement: string;
        proposedSolution: string;
        expectedBenefits: string[];
        riskAssessment: string;
        alternativeSolutions?: string[];
    };
    technicalRequirements?: {
        components: string[];
        dependencies: string[];
        breakingChanges: boolean;
        backwardCompatibility: boolean;
        testingRequirements: string[];
    };
}
export interface LearningInsight {
    id: string;
    title: string;
    description: string;
    category: LearningCategory;
    confidence: number;
    applicability: 'user-specific' | 'workflow-specific' | 'system-wide' | 'context-dependent';
    sourceType: 'feedback-analysis' | 'pattern-detection' | 'workflow-assessment' | 'improvement-tracking' | 'user-behavior';
    sourceId: string;
    relatedFeedback?: string[];
    patterns?: {
        type: 'temporal' | 'behavioral' | 'performance' | 'error' | 'success';
        frequency: number;
        significance: 'low' | 'medium' | 'high';
        description: string;
    }[];
    implementationSuggestions: string[];
    preventionStrategies?: string[];
    optimizationOpportunities?: string[];
    validationStatus?: 'pending' | 'validated' | 'invalidated';
    impactMeasurement?: {
        before: Record<string, number>;
        after: Record<string, number>;
        improvement: Record<string, number>;
    };
    generatedAt: Date;
    validatedAt?: Date;
    implementedAt?: Date;
    contextFactors?: {
        userSegment?: string[];
        workflowTypes?: string[];
        timeOfDay?: string;
        systemLoad?: 'low' | 'medium' | 'high';
        userExperience?: 'beginner' | 'intermediate' | 'expert';
    };
}
export interface UserFeedbackCaptureProps extends HTMLAttributes<HTMLDivElement> {
    /**
     * Collection of all feedback entries
     */
    feedbackEntries?: FeedbackEntry[];
    /**
     * Workflow assessment results
     */
    workflowAssessments?: WorkflowAssessment[];
    /**
     * Generated improvement suggestions
     */
    improvementSuggestions?: ImprovementSuggestion[];
    /**
     * Learning insights from feedback analysis
     */
    learningInsights?: LearningInsight[];
    /**
     * Show feedback submission form
     * @default true
     */
    showFeedbackForm?: boolean;
    /**
     * Show workflow assessment interface
     * @default true
     */
    showWorkflowAssessment?: boolean;
    /**
     * Show improvement tracking section
     * @default true
     */
    showImprovementTracking?: boolean;
    /**
     * Show learning insights section
     * @default true
     */
    showLearningInsights?: boolean;
    /**
     * Enable real-time quick feedback
     * @default true
     */
    enableRealTimeFeedback?: boolean;
    /**
     * Available feedback categories
     */
    feedbackCategories?: FeedbackCategory[];
    /**
     * Callback when feedback is submitted
     */
    onFeedbackSubmitted?: (feedback: FeedbackEntry) => void;
    /**
     * Callback when workflow is assessed
     */
    onWorkflowAssessed?: (assessment: WorkflowAssessment) => void;
    /**
     * Callback when improvement is implemented
     */
    onImprovementImplemented?: (suggestion: ImprovementSuggestion) => void;
    /**
     * Callback when learning insight is generated
     */
    onLearningGenerated?: (insight: LearningInsight) => void;
    /**
     * Callback when feedback status changes
     */
    onFeedbackStatusChanged?: (feedbackId: string, status: FeedbackStatus) => void;
    /**
     * Callback when improvement suggestion status changes
     */
    onSuggestionStatusChanged?: (suggestionId: string, status: ImplementationStatus) => void;
}
export interface FeedbackAnalyzer {
    /**
     * Analyze feedback patterns
     */
    analyzePatterns: (feedbackEntries: FeedbackEntry[], timeframe?: {
        start: Date;
        end: Date;
    }) => Promise<FeedbackPattern[]>;
    /**
     * Generate insights from feedback
     */
    generateInsights: (feedbackEntries: FeedbackEntry[]) => Promise<LearningInsight[]>;
    /**
     * Classify feedback sentiment
     */
    classifySentiment: (feedback: FeedbackEntry) => Promise<{
        sentiment: 'positive' | 'neutral' | 'negative';
        confidence: number;
        emotions: string[];
    }>;
    /**
     * Extract action items from feedback
     */
    extractActionItems: (feedback: FeedbackEntry) => Promise<{
        urgentActions: string[];
        improvementActions: string[];
        investigationNeeded: string[];
    }>;
    /**
     * Predict feedback impact
     */
    predictImpact: (feedback: FeedbackEntry) => Promise<{
        userImpact: 'low' | 'medium' | 'high';
        businessImpact: 'low' | 'medium' | 'high';
        technicalComplexity: 'low' | 'medium' | 'high';
        implementationPriority: Priority;
    }>;
}
export interface FeedbackPattern {
    id: string;
    type: 'frequency' | 'severity' | 'category' | 'workflow' | 'temporal';
    description: string;
    occurrences: number;
    significance: 'low' | 'medium' | 'high';
    trend: {
        direction: 'increasing' | 'decreasing' | 'stable';
        rate: number;
        timeframe: string;
    };
    affectedAreas: {
        workflows: string[];
        features: string[];
        userSegments: string[];
    };
    recommendations: {
        immediate: string[];
        shortTerm: string[];
        longTerm: string[];
    };
    detectedAt: Date;
    confidence: number;
}
export interface WorkflowOptimizer {
    /**
     * Analyze workflow performance
     */
    analyzeWorkflowPerformance: (assessments: WorkflowAssessment[]) => Promise<WorkflowPerformanceReport>;
    /**
     * Generate optimization suggestions
     */
    generateOptimizations: (workflowName: string, assessments: WorkflowAssessment[]) => Promise<ImprovementSuggestion[]>;
    /**
     * Compare workflow versions
     */
    compareWorkflowVersions: (workflowName: string, version1: string, version2: string) => Promise<WorkflowComparison>;
    /**
     * Predict workflow success
     */
    predictWorkflowSuccess: (workflowConfig: any) => Promise<{
        successProbability: number;
        riskFactors: string[];
        mitigationSuggestions: string[];
    }>;
}
export interface WorkflowPerformanceReport {
    workflowName: string;
    timeframe: {
        start: Date;
        end: Date;
    };
    performance: {
        averageRating: number;
        efficiency: number;
        accuracy: number;
        userExperience: number;
        consistency: number;
    };
    trends: {
        overall: 'improving' | 'stable' | 'declining';
        efficiency: 'improving' | 'stable' | 'declining';
        accuracy: 'improving' | 'stable' | 'declining';
        userExperience: 'improving' | 'stable' | 'declining';
    };
    issues: {
        recurring: string[];
        emerging: string[];
        resolved: string[];
    };
    userSegments: {
        segment: string;
        performance: number;
        satisfaction: number;
        issueCount: number;
    }[];
    recommendations: {
        priority: Priority;
        action: string;
        expectedImpact: Impact;
        effort: 'small' | 'medium' | 'large';
    }[];
}
export interface WorkflowComparison {
    workflowName: string;
    version1: string;
    version2: string;
    performance: {
        metric: string;
        version1Value: number;
        version2Value: number;
        change: number;
        significance: 'significant' | 'minor' | 'insignificant';
    }[];
    improvements: string[];
    regressions: string[];
    neutralChanges: string[];
    userFeedback: {
        preferred: string;
        confidence: number;
        reasons: string[];
    };
    recommendation: {
        preferredVersion: string;
        reasoning: string;
        rolloutStrategy?: string;
    };
}
export interface ImprovementTracker {
    /**
     * Track implementation progress
     */
    trackProgress: (suggestionId: string) => Promise<{
        status: ImplementationStatus;
        progress: number;
        milestones: ImplementationMilestone[];
        blockers: string[];
        nextSteps: string[];
    }>;
    /**
     * Measure improvement impact
     */
    measureImpact: (suggestionId: string, beforeMetrics: Record<string, number>, afterMetrics: Record<string, number>) => Promise<ImpactMeasurement>;
    /**
     * Generate implementation plan
     */
    generateImplementationPlan: (suggestion: ImprovementSuggestion) => Promise<ImplementationPlan>;
    /**
     * Validate improvement success
     */
    validateSuccess: (suggestionId: string, successCriteria: Record<string, number>) => Promise<{
        successful: boolean;
        achievedCriteria: string[];
        missedCriteria: string[];
        recommendations: string[];
    }>;
}
export interface ImplementationMilestone {
    id: string;
    title: string;
    description: string;
    targetDate: Date;
    completedDate?: Date;
    status: 'pending' | 'in-progress' | 'completed' | 'blocked';
    dependencies: string[];
    deliverables: string[];
}
export interface ImpactMeasurement {
    suggestionId: string;
    measurementPeriod: {
        start: Date;
        end: Date;
    };
    metrics: {
        name: string;
        before: number;
        after: number;
        change: number;
        significance: 'significant' | 'marginal' | 'insignificant';
        direction: 'positive' | 'negative' | 'neutral';
    }[];
    overall: {
        successScore: number;
        impact: Impact;
        confidence: number;
    };
    userFeedback: {
        satisfactionChange: number;
        adoptionRate: number;
        userComments: string[];
    };
    businessValue: {
        timesSaved: number;
        errorReduction: number;
        productivityGain: number;
        userSatisfactionImprovement: number;
    };
}
export interface ImplementationPlan {
    suggestionId: string;
    title: string;
    phases: {
        name: string;
        duration: number;
        resources: string[];
        deliverables: string[];
        dependencies: string[];
        risks: string[];
    }[];
    timeline: {
        start: Date;
        end: Date;
        milestones: ImplementationMilestone[];
    };
    resources: {
        personnel: string[];
        tools: string[];
        budget?: number;
    };
    riskMitigation: {
        risk: string;
        probability: 'low' | 'medium' | 'high';
        impact: Impact;
        mitigation: string;
    }[];
    successMetrics: {
        metric: string;
        baseline: number;
        target: number;
        measurementMethod: string;
    }[];
}
export interface LearningEngine {
    /**
     * Generate learning insights from data
     */
    generateLearnings: (data: {
        feedback: FeedbackEntry[];
        assessments: WorkflowAssessment[];
        improvements: ImprovementSuggestion[];
    }) => Promise<LearningInsight[]>;
    /**
     * Validate learning insights
     */
    validateInsights: (insights: LearningInsight[]) => Promise<{
        validated: LearningInsight[];
        rejected: LearningInsight[];
        needingMoreData: LearningInsight[];
    }>;
    /**
     * Apply learnings to improve system
     */
    applyLearnings: (insights: LearningInsight[]) => Promise<{
        applied: string[];
        scheduled: string[];
        rejected: string[];
    }>;
    /**
     * Generate knowledge base entries
     */
    generateKnowledgeBase: (insights: LearningInsight[]) => Promise<KnowledgeEntry[]>;
}
export interface KnowledgeEntry {
    id: string;
    title: string;
    content: string;
    category: 'best-practice' | 'common-issue' | 'optimization' | 'pattern' | 'solution';
    applicability: {
        workflows: string[];
        userTypes: string[];
        contexts: string[];
    };
    evidence: {
        sourceInsights: string[];
        validationData: any[];
        confidence: number;
    };
    recommendations: {
        actions: string[];
        preventions: string[];
        optimizations: string[];
    };
    createdAt: Date;
    lastUpdated: Date;
    version: string;
    usage: {
        viewCount: number;
        applicationCount: number;
        successRate: number;
    };
}
export interface UserBehaviorAnalyzer {
    /**
     * Analyze user feedback patterns
     */
    analyzeFeedbackBehavior: (userId: string, feedbackHistory: FeedbackEntry[]) => Promise<UserFeedbackProfile>;
    /**
     * Predict user satisfaction
     */
    predictSatisfaction: (userId: string, workflowName: string, context: any) => Promise<{
        satisfactionScore: number;
        confidence: number;
        factors: string[];
        recommendations: string[];
    }>;
    /**
     * Identify user needs
     */
    identifyUserNeeds: (feedbackEntries: FeedbackEntry[]) => Promise<UserNeed[]>;
    /**
     * Segment users by feedback patterns
     */
    segmentUsers: (feedbackData: FeedbackEntry[]) => Promise<UserSegment[]>;
}
export interface UserFeedbackProfile {
    userId: string;
    feedbackFrequency: 'low' | 'medium' | 'high';
    feedbackQuality: 'low' | 'medium' | 'high';
    patterns: {
        preferredFeedbackTypes: FeedbackType[];
        commonCategories: FeedbackCategory[];
        typicalSeverity: FeedbackSeverity;
        averageDetailLevel: 'brief' | 'moderate' | 'detailed';
    };
    satisfaction: {
        averageRating: number;
        trend: 'improving' | 'stable' | 'declining';
        volatility: 'low' | 'medium' | 'high';
    };
    engagement: {
        feedbackSubmissionRate: number;
        assessmentParticipation: number;
        improvementTracking: number;
    };
    expertise: {
        level: 'beginner' | 'intermediate' | 'advanced';
        areas: string[];
        growthRate: number;
    };
}
export interface UserNeed {
    id: string;
    description: string;
    category: 'functionality' | 'performance' | 'usability' | 'integration' | 'support';
    priority: Priority;
    evidence: {
        feedbackCount: number;
        userCount: number;
        urgencyScore: number;
        businessImpact: Impact;
    };
    solution: {
        type: 'feature' | 'improvement' | 'documentation' | 'training';
        description: string;
        effort: 'small' | 'medium' | 'large';
        timeline: string;
    };
    validation: {
        userVotes: number;
        expertReview: 'pending' | 'approved' | 'rejected';
        feasibilityScore: number;
    };
}
export interface UserSegment {
    id: string;
    name: string;
    description: string;
    userCount: number;
    characteristics: {
        feedbackPatterns: string[];
        satisfactionLevels: string[];
        usagePatterns: string[];
        painPoints: string[];
    };
    needs: {
        primary: string[];
        secondary: string[];
        emerging: string[];
    };
    recommendations: {
        features: string[];
        improvements: string[];
        support: string[];
    };
}
//# sourceMappingURL=types.d.ts.map