/** * Session-Aware Notification System Types * * Handles notifications with intelligent session routing: * 1. Primary: MCP client-provided session IDs * 2. Fallback: Contextual relevance (process + recent usage + timing) */ export declare enum NotificationType { AUTH_PROVIDED = "AUTH_PROVIDED", AUTH_EXPIRED = "AUTH_EXPIRED", AUTH_FAILED = "AUTH_FAILED", MCP_HEALTH_CHANGED = "MCP_HEALTH_CHANGED", MCP_CONNECTED = "MCP_CONNECTED", MCP_DISCONNECTED = "MCP_DISCONNECTED", RATE_LIMIT_HIT = "RATE_LIMIT_HIT", RATE_LIMIT_CLEARED = "RATE_LIMIT_CLEARED", OPERATION_RETRY_SUCCESS = "OPERATION_RETRY_SUCCESS", OPERATION_RETRY_FAILED = "OPERATION_RETRY_FAILED", SYSTEM_UPDATE = "SYSTEM_UPDATE", CREDENTIAL_EXPIRES_SOON = "CREDENTIAL_EXPIRES_SOON", INFO = "INFO", WARNING = "WARNING", ERROR = "ERROR" } export type NotificationPriority = 'LOW' | 'MEDIUM' | 'HIGH' | 'CRITICAL'; export interface Notification { id: string; type: NotificationType; mcpName?: string; message: string; timestamp: number; priority: NotificationPriority; sessionId?: string; metadata?: Record; attempts?: number; delivered?: boolean; deliveredAt?: number; } /** * Session context for routing decisions */ export interface SessionContext { sessionId?: string; processId: number; workingDirectory: string; startTime: number; recentMCPs: Map; lastActivity: number; totalOperations: number; } /** * Notification delivery assessment */ export interface DeliveryAssessment { shouldDeliver: boolean; confidence: number; reasoning: string[]; deliveryMethod: 'immediate' | 'contextual' | 'skip'; } /** * Configuration for notification behavior */ export interface NotificationConfig { mcpUsageRelevanceWindow: number; notificationMaxAge: number; immediateDeliveryThreshold: number; contextualDeliveryThreshold: number; maxNotificationsPerResponse: number; maxRetryAttempts: number; enableDebugLogging: boolean; logDeliveryDecisions: boolean; } export declare const DEFAULT_NOTIFICATION_CONFIG: NotificationConfig; //# sourceMappingURL=notifications.d.ts.map