import { ChartDataPoint } from '../types';
export interface DataProcessingOptions {
    normalize?: boolean;
    smooth?: boolean;
    smoothWindow?: number;
    removeOutliers?: boolean;
    outlierThreshold?: number;
    aggregate?: boolean;
    aggregateMethod?: 'sum' | 'avg' | 'min' | 'max' | 'count';
    aggregateWindow?: number;
    sort?: boolean;
    sortBy?: 'x' | 'y' | 'value';
    sortOrder?: 'asc' | 'desc';
    filter?: (point: ChartDataPoint) => boolean;
    transform?: (point: ChartDataPoint) => ChartDataPoint;
}
export declare class ChartDataUtils {
    /**
     * Normalize data points to a specific range
     */
    static normalizeData(data: ChartDataPoint[], min?: number, max?: number): ChartDataPoint[];
    /**
     * Apply smoothing to data points using moving average
     */
    static smoothData(data: ChartDataPoint[], windowSize?: number): ChartDataPoint[];
    /**
     * Remove outliers using statistical methods
     */
    static removeOutliers(data: ChartDataPoint[], threshold?: number): ChartDataPoint[];
    /**
     * Aggregate data points using various methods
     */
    static aggregateData(data: ChartDataPoint[], method?: 'sum' | 'avg' | 'min' | 'max' | 'count', windowSize?: number): ChartDataPoint[];
    /**
     * Sort data points by specified criteria
     */
    static sortData(data: ChartDataPoint[], sortBy?: 'x' | 'y' | 'value', order?: 'asc' | 'desc'): ChartDataPoint[];
    /**
     * Filter data points using a predicate function
     */
    static filterData(data: ChartDataPoint[], predicate: (point: ChartDataPoint) => boolean): ChartDataPoint[];
    /**
     * Transform data points using a transformation function
     */
    static transformData(data: ChartDataPoint[], transformer: (point: ChartDataPoint) => ChartDataPoint): ChartDataPoint[];
    /**
     * Process data with multiple operations in sequence
     */
    static processData(data: ChartDataPoint[], options: DataProcessingOptions): ChartDataPoint[];
    /**
     * Generate sample data for testing
     */
    static generateSampleData(count?: number, type?: 'linear' | 'sine' | 'random' | 'exponential', range?: [number, number]): ChartDataPoint[];
    /**
     * Calculate statistical measures for data
     */
    static calculateStatistics(data: ChartDataPoint[]): {
        mean: number;
        median: number;
        mode: number[];
        variance: number;
        standardDeviation: number;
        min: number;
        max: number;
        range: number;
        quartiles: [number, number, number];
    };
    /**
     * Detect trends in data
     */
    static detectTrend(data: ChartDataPoint[]): 'increasing' | 'decreasing' | 'stable' | 'volatile';
}
export declare const normalizeData: (data: ChartDataPoint[], min?: number, max?: number) => ChartDataPoint[];
export declare const smoothData: (data: ChartDataPoint[], windowSize?: number) => ChartDataPoint[];
export declare const removeOutliers: (data: ChartDataPoint[], threshold?: number) => ChartDataPoint[];
export declare const aggregateData: (data: ChartDataPoint[], method?: "sum" | "avg" | "min" | "max" | "count", windowSize?: number) => ChartDataPoint[];
export declare const sortData: (data: ChartDataPoint[], sortBy?: "x" | "y" | "value", order?: "asc" | "desc") => ChartDataPoint[];
export declare const filterData: (data: ChartDataPoint[], predicate: (point: ChartDataPoint) => boolean) => ChartDataPoint[];
export declare const transformData: (data: ChartDataPoint[], transformer: (point: ChartDataPoint) => ChartDataPoint) => ChartDataPoint[];
export declare const processData: (data: ChartDataPoint[], options: DataProcessingOptions) => ChartDataPoint[];
export declare const generateSampleData: (count?: number, type?: "linear" | "sine" | "random" | "exponential", range?: [number, number]) => ChartDataPoint[];
export declare const calculateStatistics: (data: ChartDataPoint[]) => {
    mean: number;
    median: number;
    mode: number[];
    variance: number;
    standardDeviation: number;
    min: number;
    max: number;
    range: number;
    quartiles: [number, number, number];
};
export declare const detectTrend: (data: ChartDataPoint[]) => "stable" | "increasing" | "decreasing" | "volatile";
//# sourceMappingURL=ChartDataUtils.d.ts.map