import { ChartDataPoint } from '../types'; /** * Options for streaming data behavior */ interface StreamingOptions { /** Maximum number of data points to keep */ maxDataPoints?: number; /** Minimum milliseconds between updates */ updateInterval?: number; /** Enable smooth transitions between updates */ smoothTransitions?: boolean; /** Callback when data points are removed due to overflow */ onDataOverflow?: (removedData: ChartDataPoint[]) => void; } /** * Hook for handling streaming/real-time chart data * Optimizes performance for high-frequency updates * @param initialData - Initial data points * @param options - Streaming configuration options * @returns Object with data and control functions */ export declare function useStreamingData(initialData?: ChartDataPoint[], options?: StreamingOptions): { data: ChartDataPoint[]; addDataPoint: (point: ChartDataPoint | ChartDataPoint[]) => void; startStreaming: () => void; stopStreaming: () => void; clearData: () => void; isStreaming: boolean; queueSize: number; }; /** * Hook for animating data changes smoothly * @param data - Current data points * @param transitionDuration - Duration of transition in milliseconds (default 500) * @returns Animated data points */ export declare function useDataTransitions(data: ChartDataPoint[], transitionDuration?: number): ChartDataPoint[]; /** * Hook for data aggregation and downsampling * Useful for large datasets to maintain performance * @param data - Full dataset to aggregate * @param maxPoints - Maximum number of points to return (default 1000) * @returns Downsampled data points */ export declare function useDataAggregation(data: ChartDataPoint[], maxPoints?: number): { aggregatedData: ChartDataPoint[]; compressionRatio: number; isCompressed: boolean; }; export {};