/**
 * Real-time AI Analysis Pipeline
 *
 * Handles streaming analysis, debounced requests, caching, and suggestion ranking
 * for the Personal AI Writing Assistant.
 */
import type { AIAnalysisResult, AIAnalysisContext, SuggestionType, AnalyticsEvent } from '../types/ai-assistant';
export interface AnalysisPipelineConfig {
    endpoint?: string;
    apiKey?: string;
    provider: 'mcp' | 'agent' | 'local';
    debounceDelay: number;
    batchSize: number;
    maxConcurrentRequests: number;
    cacheSize: number;
    cacheTTL: number;
    enablePersistentCache: boolean;
    enabledTypes: SuggestionType[];
    maxSuggestions: number;
    confidenceThreshold: number;
    enablePersonalization: boolean;
    learningRate: number;
    privacyMode: 'strict' | 'balanced' | 'permissive';
    allowTelemetry: boolean;
    dataRetention: number;
    enableStreaming: boolean;
    streamingChunkSize: number;
    enableOfflineMode: boolean;
}
export interface AnalysisRequest {
    id: string;
    text: string;
    context: AIAnalysisContext;
    timestamp: number;
    priority: 'low' | 'medium' | 'high';
    retry: number;
}
export interface CachedAnalysis {
    key: string;
    results: AIAnalysisResult[];
    timestamp: number;
    hits: number;
    context: AIAnalysisContext;
    textHash: string;
}
export interface SuggestionRanking {
    suggestionId: string;
    score: number;
    factors: {
        relevance: number;
        confidence: number;
        userPreference: number;
        contextMatch: number;
        freshness: number;
    };
    decayFactor: number;
}
export declare class AnalysisPipeline {
    private config;
    private aiService;
    private cache;
    private requestQueue;
    private activeRequests;
    private debounceTimers;
    private personalizationData;
    private analytics;
    private isProcessing;
    constructor(config: AnalysisPipelineConfig);
    /**
     * Submit text for analysis with debouncing
     */
    analyzeText(text: string, context: AIAnalysisContext, priority?: 'low' | 'medium' | 'high'): Promise<AIAnalysisResult[]>;
    /**
     * Process analysis request with queuing and batching
     */
    private processAnalysisRequest;
    /**
     * Start the processing loop for queued requests
     */
    private startProcessingLoop;
    /**
     * Rank suggestions based on various factors
     */
    private rankSuggestions;
    /**
     * Calculate ranking score for a suggestion
     */
    private calculateSuggestionRanking;
    /**
     * Get cached analysis if available and fresh
     */
    private getCachedAnalysis;
    /**
     * Cache analysis results
     */
    private cacheAnalysis;
    /**
     * Update personalization data based on user interactions
     */
    private updatePersonalization;
    /**
     * Track analytics events
     */
    private trackAnalytics;
    /**
     * Cleanup old cache entries and analytics
     */
    private cleanup;
    /**
     * Helper methods
     */
    private generateRequestId;
    private generateCacheKey;
    private hashText;
    private mapConfidence;
    private getUserPreference;
    private calculateContextMatch;
    private calculateFreshness;
    private evictLeastUsed;
    private extractWritingPatterns;
    private mergeWritingPatterns;
    /**
     * Public API methods
     */
    /**
     * Get cache statistics
     */
    getCacheStats(): {
        size: number;
        maxSize: number;
        hitRate: number;
        avgAge: number;
    };
    /**
     * Get analytics data
     */
    getAnalytics(): {
        events: AnalyticsEvent[];
        summary: {
            totalAnalyses: number;
            avgProcessingTime: number;
            errorRate: number;
            cacheHitRate: number;
        };
    };
    /**
     * Clear cache
     */
    clearCache(): void;
    /**
     * Shutdown pipeline
     */
    shutdown(): void;
    private calculateHitRate;
    private calculateAvgCacheAge;
    private summarizeAnalytics;
}
//# sourceMappingURL=AnalysisPipeline.d.ts.map