import type { Datum } from "../shared/datumTypes";
import * as React from "react";
import type { BaseChartProps, ChartAccessor } from "../shared/types";
import { type TooltipProp } from "../../Tooltip/Tooltip";
export interface ScatterplotMatrixProps<TDatum extends Datum = Datum> extends BaseChartProps {
    /** Array of data objects */
    data: TDatum[];
    /** Array of field names to include in the matrix */
    fields: string[];
    /** Optional display labels for fields */
    fieldLabels?: Record<string, string>;
    /** Field or function to determine point color */
    colorBy?: ChartAccessor<TDatum, string>;
    /** Color scheme @default "category10" */
    colorScheme?: string | string[];
    /** Size of each cell in pixels @default 150 */
    cellSize?: number;
    /** Gap between cells in pixels @default 4 */
    cellGap?: number;
    /** Point radius @default 2 */
    pointRadius?: number;
    /** Point opacity @default 0.5 */
    pointOpacity?: number;
    /** What to show on the diagonal @default "histogram" */
    diagonal?: "histogram" | "density" | "label";
    /** Number of histogram bins @default 20 */
    histogramBins?: number;
    /** Brush interaction mode @default "crossfilter" */
    brushMode?: "crossfilter" | "intersect" | false;
    /** Enable hover cross-highlighting @default true */
    hoverMode?: boolean;
    /** Opacity for unselected points @default 0.1 */
    unselectedOpacity?: number;
    /** Show grid lines @default false */
    showGrid?: boolean;
    /** Tooltip configuration */
    tooltip?: TooltipProp;
    /** Show legend @default true when colorBy is set */
    showLegend?: boolean;
    /** Field or function to identify each data point in tooltips. Defaults to "Row {index}" */
    idAccessor?: string | ((d: TDatum) => string);
}
/**
 * ScatterplotMatrix (SPLOM) — multi-dimensional scatter visualization
 *
 * Renders an N×N grid of scatterplots for all pairwise combinations of the
 * specified fields. Diagonal cells show histograms. Supports two interaction
 * modes:
 *
 * - **Hover** (default): hover a point to cross-highlight the same datum
 *   in every cell. Set `hoverMode={true}` (the default).
 * - **Brush**: drag to select a region in one cell; matching points are
 *   highlighted across all cells (crossfilter: the brushed cell excludes
 *   its own filter). Set `hoverMode={false}` to enable brush mode.
 *
 * The two modes are mutually exclusive — hover takes priority when enabled.
 *
 * @example
 * ```tsx
 * // Iris dataset — every pairwise field combination
 * <ScatterplotMatrix
 *   data={iris}
 *   fields={["sepalLength", "sepalWidth", "petalLength", "petalWidth"]}
 *   colorBy="species"
 *   cellSize={160}
 *   diagonal="histogram"
 * />
 * ```
 *
 * @example
 * ```tsx
 * // Brush mode: drag in any cell to highlight matching points across the
 * // matrix. The `crossfilter` mode excludes the brushed cell from its own
 * // filter so it stays fully visible while the others dim non-matches.
 * // Brush selections live in the matrix's internal selection store and do
 * // not propagate to charts rendered outside the component.
 * <ScatterplotMatrix
 *   data={observations}
 *   fields={["x", "y", "z"]}
 *   hoverMode={false}
 *   brushMode="crossfilter"
 * />
 * ```
 */
export declare function ScatterplotMatrix<TDatum extends Datum = Datum>(props: ScatterplotMatrixProps<TDatum>): React.JSX.Element;
export declare namespace ScatterplotMatrix {
    var displayName: string;
}
