/**
 * OptimizedDashboardManager.tsx
 *
 * Consolidates 8+ dashboard-related components into a single, unified manager:
 * - Dashboard.js (main dashboard component)
 * - DashboardGrid.js (grid layout component)
 * - DashboardWidget.js (widget component)
 * - UnifiedDashboard.tsx (unified dashboard implementation)
 * - Layout/Dashboard.tsx (layout dashboard)
 * - Layout/Dashboard.js (another layout dashboard)
 * - pages/DashboardPage.js (full page dashboard)
 * - hooks/useDashboardData.js (dashboard data hook)
 *
 * Key improvements:
 * - Single source of truth for dashboard state and data
 * - Unified widget system with consistent styling
 * - Flexible grid layouts with responsive design
 * - Optimized rendering with React.memo and useMemo
 * - Real-time data updates with proper caching
 * - Comprehensive error boundaries and loading states
 * - Accessibility compliance (ARIA labels, keyboard navigation)
 * - Performance monitoring and analytics
 * - Theme-aware components with dark/light mode support
 * - Extensible plugin system for custom widgets
 */
import React from 'react';
export interface DashboardMetric {
    id: string;
    title: string;
    value: string | number;
    previousValue?: string | number;
    trend?: number;
    trendDirection?: 'up' | 'down' | 'stable';
    description?: string;
    icon?: string;
    category: 'performance' | 'business' | 'technical' | 'user' | 'system';
    unit?: string;
    threshold?: {
        warning: number;
        critical: number;
    };
    chartData?: Array<{
        timestamp: string;
        value: number;
    }>;
    lastUpdated: string;
    source: string;
    isKPI?: boolean;
    color?: string;
}
export interface DashboardActivity {
    id: string;
    timestamp: string;
    type: 'info' | 'warning' | 'error' | 'success';
    title: string;
    description: string;
    source: string;
    userId?: string;
    userName?: string;
    metadata?: Record<string, any>;
    category: 'system' | 'user' | 'business' | 'security';
    severity: 'low' | 'medium' | 'high' | 'critical';
    acknowledged?: boolean;
    resolvedAt?: string;
}
export interface DashboardWidget {
    id: string;
    type: 'metric' | 'chart' | 'table' | 'text' | 'custom';
    title: string;
    subtitle?: string;
    position: {
        x: number;
        y: number;
        w: number;
        h: number;
    };
    config: Record<string, any>;
    dataSource: string;
    refreshInterval?: number;
    minWidth?: number;
    minHeight?: number;
    maxWidth?: number;
    maxHeight?: number;
    collapsible?: boolean;
    removable?: boolean;
    resizable?: boolean;
    draggable?: boolean;
    visible?: boolean;
    permissions?: string[];
    lastUpdated?: string;
}
export interface DashboardLayout {
    id: string;
    name: string;
    description?: string;
    widgets: DashboardWidget[];
    isDefault?: boolean;
    isShared?: boolean;
    createdBy?: string;
    createdAt: string;
    updatedAt: string;
    tags?: string[];
    category?: string;
}
export interface DashboardFilter {
    timeRange: 'realtime' | '1h' | '6h' | '24h' | '7d' | '30d' | 'custom';
    customStart?: string;
    customEnd?: string;
    categories: string[];
    sources: string[];
    severity: string[];
    search: string;
    showOnlyKPI: boolean;
}
export interface DashboardData {
    metrics: DashboardMetric[];
    activities: DashboardActivity[];
    alerts: DashboardActivity[];
    systemStatus: {
        overall: 'healthy' | 'warning' | 'critical';
        uptime: number;
        responseTime: number;
        errorRate: number;
        activeUsers: number;
        totalRequests: number;
        lastUpdated: string;
    };
    summary: {
        totalMetrics: number;
        kpiMetrics: number;
        alertCount: number;
        performanceScore: number;
        trendsData: Array<{
            date: string;
            value: number;
        }>;
    };
}
interface OptimizedDashboardManagerProps {
    layout?: 'grid' | 'masonry' | 'custom';
    columns?: number;
    refreshInterval?: number;
    enableRealTime?: boolean;
    showFilters?: boolean;
    showLayoutSelector?: boolean;
    enableCustomization?: boolean;
    defaultFilters?: Partial<DashboardFilter>;
    onMetricClick?: (metric: DashboardMetric) => void;
    onActivityClick?: (activity: DashboardActivity) => void;
    onLayoutChange?: (layout: DashboardLayout) => void;
    height?: string;
    customWidgets?: React.ComponentType<any>[];
}
export declare const OptimizedDashboardManager: React.FC<OptimizedDashboardManagerProps>;
export default OptimizedDashboardManager;
//# sourceMappingURL=OptimizedDashboardManager.d.ts.map