/** * Index Performance Dashboard * * Real-time visualization and monitoring of index performance metrics. */ import type { IndexMetrics, PerformanceReport, TuningRecommendation } from './index-analytics.js'; export interface DashboardMetrics { timestamp: number; indexes: IndexDashboard[]; queryPerformance: QueryPerformanceSummary; recommendations: TuningRecommendation[]; } export interface IndexDashboard { name: string; type: string; reads: number; writes: number; hitRate: number; avgQueryMs: number; avgWriteMs: number; entries: number; lastUsedRelative: string; health: 'healthy' | 'warning' | 'critical'; healthReason?: string; } export interface QueryPerformanceSummary { totalQueries: number; indexedQueries: number; fullScans: number; indexUsageRate: number; avgQueryMs: number; p50QueryMs: number; p95QueryMs: number; p99QueryMs: number; slowQueries: number; } /** * Dashboard formatter - converts raw metrics to display format. */ export declare class DashboardFormatter { /** * Format index metrics for display. */ static formatIndexMetrics(metrics: IndexMetrics): IndexDashboard; /** * Format performance report for display. */ static formatReport(report: PerformanceReport): DashboardMetrics; /** * Format duration for display. */ private static formatDuration; /** * Generate ASCII dashboard. */ static renderASCII(dashboard: DashboardMetrics): string; /** * Generate JSON dashboard data. */ static renderJSON(dashboard: DashboardMetrics): string; } /** * Real-time dashboard updates via events. */ export declare class LiveDashboard { private metrics; private listeners; private updateInterval; private intervalHandle?; /** * Start streaming dashboard updates. */ start(updateFn: () => DashboardMetrics, interval?: number): void; /** * Stop streaming updates. */ stop(): void; /** * Subscribe to dashboard updates. */ subscribe(listener: (metrics: DashboardMetrics) => void): () => void; /** * Get current dashboard state. */ getCurrent(): DashboardMetrics | null; private notifyListeners; } /** * Alert system for performance anomalies. */ export interface PerformanceAlert { severity: 'info' | 'warning' | 'critical'; type: 'slow_query' | 'high_full_scans' | 'unused_index' | 'index_overhead'; message: string; timestamp: number; metrics?: Record; } export declare class PerformanceAlerter { private alerts; private thresholds; /** * Check dashboard against thresholds and generate alerts. */ checkThresholds(dashboard: DashboardMetrics): PerformanceAlert[]; /** * Get recent alerts. */ getRecentAlerts(limit?: number): PerformanceAlert[]; /** * Clear old alerts. */ clearOldAlerts(olderThanMs?: number): void; } //# sourceMappingURL=index-dashboard.d.ts.map