/** * Options for kernel density estimation */ export interface KDEOptions { /** Bandwidth parameter (if omitted, uses Silverman's rule) */ bandwidth?: number; /** Number of x positions to sample */ samples?: number; /** Kernel function type */ kernel?: 'gaussian'; } /** * Calculates bandwidth using Silverman's rule of thumb * @param values - Array of data values * @returns Calculated bandwidth */ export declare function silvermanBandwidth(values: number[]): number; /** * Performs kernel density estimation on a dataset * @param values - Array of data values * @param domain - Range to evaluate the density over [min, max] * @param opts - KDE options * @returns Array of {x, y} density curve points */ export declare function kde(values: number[], domain: [number, number], opts?: KDEOptions): { x: number; y: number; }[]; /** * Normalizes density values to 0-1 range * @param points - Array of density curve points * @returns Normalized points */ export declare function normalizeDensity(points: { x: number; y: number; }[]): { x: number; y: number; }[];