import type { TransformLineage } from './transform.js'; import type { Channel, ChannelOutput, CartesianChartMark, CartesianScaleBindings, ChartKey, ChartMarkMotionOptions, ChartValue, VisualChannel } from './types.js'; export interface DensityContourDatum extends TransformLineage { /** Weighted observations per CSS pixel squared at this contour level. */ readonly density: number; readonly group: ChartKey | null; } export interface DensityContourOptions extends ChartMarkMotionOptions, CartesianScaleBindings { id?: string; x: Channel; y: Channel; /** Estimates a separate density field for each non-null group. */ z?: Channel; weight?: Channel; /** Gaussian-kernel bandwidth in final CSS pixels. Defaults to 20. */ bandwidth?: number; /** Density-grid cell size in final CSS pixels. Defaults to 4. */ cellSize?: number; /** Exact density levels or an approximate shared level count. Defaults to 20. */ thresholds?: number | Iterable; color?: Channel, ChartKey | null | undefined>; fill?: VisualChannel, string>; fillOpacity?: number; stroke?: VisualChannel, string>; strokeOpacity?: number; strokeWidth?: number; strokeDasharray?: string; opacity?: number; } type DensityXOutput = ChannelOutput; type DensityYOutput = ChannelOutput; /** Estimates filled density contours after x/y scales reach final screen space. */ export declare function densityContour>>(source: Iterable, options: TOptions): CartesianChartMark, DensityYOutput, TOptions>; export {};