import type { Vec2 } from '../../math'; import type { HandlerProps } from '../core/types'; export type WhiskerMode = `tukey` | `minmax` | `percentile` | `std`; export type ViolinKind = `box` | `violin` | `violin+box`; export type ViolinSide = `both` | `positive` | `negative`; export type BandwidthOption = number | `silverman` | `scott`; export interface BoxPlotSeries> { id?: string | number; y: readonly number[]; label?: string; color?: string; box_width?: number; visible?: boolean; legend_group?: string; metadata?: Metadata; x_axis?: `x1` | `x2`; y_axis?: `y1` | `y2`; whisker_mode?: WhiskerMode; whisker_range?: number; whisker_percentiles?: Vec2; kind?: ViolinKind; side?: ViolinSide; bandwidth?: BandwidthOption; violin_width?: number; clip?: [number | null, number | null]; category?: string; } export interface BoxHandlerProps> extends HandlerProps { box_idx: number; stats: BoxStats; color: string; category_label?: string; active_y_axis: `y1` | `y2`; active_x_axis: `x1` | `x2`; } export interface BoxStats { min: number; max: number; q1: number; median: number; q3: number; mean: number; whisker_low: number; whisker_high: number; outliers: number[]; n: number; } export interface BoxStatsOptions { whisker_mode?: WhiskerMode; whisker_range?: number; whisker_percentiles?: Vec2; collect_outliers?: boolean; } export declare const WHISKER_MODES: readonly ["tukey", "minmax", "percentile", "std"]; export declare const is_whisker_mode: (val: string) => val is WhiskerMode; export declare function compute_box_stats(values: readonly number[], opts?: BoxStatsOptions): BoxStats;