/** * Queue Prioritization System with Fairness Algorithms * Implements advanced queue management with priority balancing and fairness controls */ /// import { EventEmitter } from "events"; export interface QueueItem { id: string; data: T; priority: number; timestamp: number; deadline?: number; retries: number; maxRetries: number; cost: number; userId: string; tier: "free" | "basic" | "premium" | "enterprise"; estimatedProcessingTime: number; metadata: { source: string; type: string; size: number; complexity: "low" | "medium" | "high" | "critical"; }; } export interface QueueMetrics { totalItems: number; processedItems: number; failedItems: number; averageWaitTime: number; averageProcessingTime: number; throughputPerSecond: number; fairnessScore: number; tierDistribution: Map; } export interface FairnessPolicy { algorithm: "weighted-fair" | "lottery" | "stride" | "proportional-share"; tierWeights: Map; maxStarvationTime: number; agingFactor: number; burstAllowance: number; } export interface ProcessingResult { success: boolean; result?: T; error?: string; processingTime: number; resourcesUsed: { cpu: number; memory: number; network: number; }; } export declare class QueuePrioritizationSystem extends EventEmitter { private policy; private queues; private fairnessManager; private loadBalancer; private metricsCollector; private starvationPreventer; private adaptiveScheduler; constructor(policy: FairnessPolicy); /** * Add item to appropriate queue with priority calculation */ enqueue(item: QueueItem): Promise; /** * Dequeue next item based on fairness algorithm */ dequeue(): Promise | null>; /** * Process item with monitoring and feedback */ processItem(item: QueueItem, processor: (data: T) => Promise>): Promise>; /** * Get comprehensive queue metrics */ getMetrics(): Map; /** * Get overall system fairness score */ getFairnessScore(): number; /** * Adjust fairness policy dynamically */ adjustFairnessPolicy(updates: Partial): Promise; /** * Optimize queue configuration based on patterns */ optimizeConfiguration(): Promise<{ recommendations: string[]; expectedImprovement: number; changes: any[]; }>; /** * Handle burst traffic with adaptive capacity */ handleBurst(expectedLoad: number, duration: number): Promise; private initializeSystem; private calculateDynamicPriority; private selectQueue; private ensureQueue; private handleProcessingFailure; private performMaintenance; private performAging; private updateFairnessMetrics; } declare class PriorityQueue { private items; enqueue(item: QueueItem): void; dequeue(): QueueItem | null; peek(): QueueItem | null; isEmpty(): boolean; size(): number; ageItems(currentTime: number, threshold: number, agingFactor: number): void; getItems(): QueueItem[]; } declare class FairnessManager { private policy; private queueProcessingCounts; private lastProcessingTimes; private fairnessScores; constructor(policy: FairnessPolicy); calculateAdjustment(item: QueueItem): Promise; selectNextQueue(queues: Map>): Promise; recordProcessing(queueId: string, item: QueueItem): Promise; calculateOverallFairnessScore(): number; updatePolicy(updates: Partial): Promise; updateMetrics(): Promise; private weightedFairSelection; private lotterySelection; private strideSelection; private proportionalShareSelection; private calculateQueueFairnessScore; } declare class QueueLoadBalancer { selectOptimalQueue(queues: Map>): string | null; } declare class QueueMetricsCollector { private enqueueCounts; private dequeueCounts; private processingTimes; private waitTimes; private failures; recordEnqueue(item: QueueItem, queueId: string): void; recordDequeue(item: QueueItem, queueId: string): void; recordProcessing(item: QueueItem, processingTime: number, success: boolean): void; recordFailure(item: QueueItem, error: string): void; getQueueMetrics(queueId: string): QueueMetrics; } declare class StarvationPreventer { private policy; constructor(policy: FairnessPolicy); checkAndPrevent(queueId: string): Promise; checkAllQueues(): Promise; } declare class AdaptiveScheduler { recordOutcome(item: QueueItem, result: ProcessingResult, processingTime: number): Promise; analyzePerformance(): Promise<{ queueImbalance: number; fairnessViolations: number; starvationIncidents: number; suggestedWeights: Map; potentialImprovement: number; }>; prepareBurstHandling(expectedLoad: number, duration: number): Promise; restoreNormalOperation(): void; } export { PriorityQueue, FairnessManager, QueueLoadBalancer, QueueMetricsCollector, StarvationPreventer, AdaptiveScheduler, }; //# sourceMappingURL=queue-prioritization-system.d.ts.map