UNPKG

claritykit-svelte

Version:

A comprehensive Svelte component library focused on accessibility, ADHD-optimized design, developer experience, and full SSR compatibility

248 lines 6.08 kB
export interface PerformanceConfig { enableVirtualization: boolean; enableDataStreaming: boolean; enableWebWorkers: boolean; maxDataPoints: number; chunkSize: number; debounceMs: number; throttleMs: number; useOffscreenCanvas: boolean; enableLevelOfDetail: boolean; cacheSize: number; } export interface DataChunk { id: string; startIndex: number; endIndex: number; data: any[]; metadata?: Record<string, any>; } export interface VirtualizationResult { visibleData: any[]; totalCount: number; startIndex: number; endIndex: number; hasMore: boolean; } /** * Data virtualization for large datasets */ export declare class DataVirtualizer { private data; private chunkSize; private visibleRange; private cache; private maxCacheSize; constructor(chunkSize?: number, maxCacheSize?: number); /** * Set the complete dataset */ setData(data: any[]): void; /** * Get virtualized data for current viewport */ getVirtualizedData(startIndex?: number, count?: number): VirtualizationResult; /** * Update visible range (e.g., when scrolling) */ updateVisibleRange(start: number, end: number): VirtualizationResult; /** * Preload chunks around current visible range */ preloadAdjacentChunks(): void; private setCache; /** * Clear cache and reset */ clear(): void; /** * Get memory usage statistics */ getMemoryStats(): { cacheSize: number; dataSize: number; chunks: number; }; } /** * Level of Detail (LOD) management for charts */ export declare class LevelOfDetailManager { private lodLevels; private currentLod; /** * Generate different levels of detail for data */ generateLOD(data: any[], levels?: number): void; /** * Get data for appropriate LOD based on zoom level */ getDataForZoom(zoomLevel: number, dataCount: number): any[]; /** * Simplify data by reducing point count */ private simplifyData; private isTimeSeries; private averageChunk; getCurrentLOD(): number; getLODInfo(): { level: number; pointCount: number; total: number; }; } /** * Web Worker manager for offloading computations */ export declare class ChartWorkerManager { private workers; private maxWorkers; private workerScript; constructor(maxWorkers?: number); /** * Process data in a web worker */ processData(operation: 'aggregate' | 'filter' | 'sort' | 'calculate', data: any[], options?: Record<string, any>): Promise<any>; /** * Calculate statistics in worker */ calculateStatistics(data: number[]): Promise<{ mean: number; median: number; std: number; min: number; max: number; percentiles: { p25: number; p75: number; p90: number; p95: number; }; }>; /** * Aggregate time series data in worker */ aggregateTimeSeries(data: Array<{ timestamp: number; value: number; }>, interval: 'hour' | 'day' | 'week' | 'month'): Promise<Array<{ timestamp: number; value: number; count: number; }>>; private createWorker; private destroyWorker; private createWorkerScript; /** * Cleanup all workers */ destroy(): void; } /** * Efficient data streaming for real-time updates */ export declare class DataStreamer { private buffer; private maxBufferSize; private flushCallback; private flushInterval; private intervalId; constructor(maxBufferSize: number | undefined, flushIntervalMs: number | undefined, flushCallback: (data: any[]) => void); /** * Add data point to stream */ push(dataPoint: any): void; /** * Add multiple data points */ pushBatch(dataPoints: any[]): void; /** * Start automatic flushing */ start(): void; /** * Stop automatic flushing */ stop(): void; /** * Manually flush buffer */ flush(): void; /** * Get current buffer size */ getBufferSize(): number; } /** * Performance monitoring for charts */ export declare class ChartPerformanceMonitor { private metrics; private startTimes; /** * Start timing an operation */ startTiming(operation: string): void; /** * End timing and record metric */ endTiming(operation: string): number; /** * Get performance statistics for an operation */ getStats(operation: string): { avg: number; min: number; max: number; count: number; p95: number; } | null; /** * Get all performance metrics */ getAllStats(): Record<string, any>; /** * Clear all metrics */ clear(): void; /** * Log performance report to console */ logReport(): void; } /** * Debounce and throttle utilities */ export declare function debounce<T extends (...args: any[]) => any>(func: T, waitMs: number): (...args: Parameters<T>) => void; export declare function throttle<T extends (...args: any[]) => any>(func: T, waitMs: number): (...args: Parameters<T>) => void; /** * Memory usage monitoring */ export declare class MemoryMonitor { private static instance; private observers; static getInstance(): MemoryMonitor; /** * Get current memory usage */ getMemoryUsage(): MemoryInfo | null; /** * Start monitoring memory usage */ startMonitoring(intervalMs?: number): void; /** * Subscribe to memory updates */ subscribe(observer: (usage: MemoryInfo) => void): () => void; /** * Check if memory usage is high */ isMemoryHigh(): boolean; } interface MemoryInfo { totalJSHeapSize: number; usedJSHeapSize: number; jsHeapSizeLimit: number; } export {}; //# sourceMappingURL=chart-performance.d.ts.map