import type { Datum } from "../shared/datumTypes";
import * as React from "react";
import type { StreamXYFrameProps, MarginalGraphicsConfig } from "../../stream/types";
import type { RealtimeFrameHandle } from "../../realtime/types";
import type { BaseChartProps, AxisConfig, ChartAccessor } from "../shared/types";
import { type TooltipProp } from "../../Tooltip/Tooltip";
import type { LegendInteractionMode, LegendPosition } from "../shared/hooks";
/**
 * Scatterplot component props
 */
export interface ScatterplotProps<TDatum extends Datum = Datum> extends BaseChartProps, AxisConfig {
    /** Array of data points. Each point should have x and y properties. */
    data?: TDatum[];
    /** Field name or function to access x values @default "x" */
    xAccessor?: ChartAccessor<TDatum, number>;
    /** Field name or function to access y values @default "y" */
    yAccessor?: ChartAccessor<TDatum, number>;
    /** Field name or function to determine point color */
    colorBy?: ChartAccessor<TDatum, string>;
    /** Color scheme for categorical data or custom colors array @default "category10" */
    colorScheme?: string | string[];
    /** Field name or function to determine point size */
    sizeBy?: ChartAccessor<TDatum, number>;
    /** Min and max radius for points @default [3, 15] */
    sizeRange?: [number, number];
    /** Default point radius when sizeBy is not specified @default 5 */
    pointRadius?: number;
    /** Point opacity @default 0.8 */
    pointOpacity?: number;
    /** Enable hover annotations @default true */
    enableHover?: boolean;
    /** Show grid lines @default false */
    showGrid?: boolean;
    /** Show legend @default true (when colorBy is specified) */
    showLegend?: boolean;
    /** Tooltip configuration */
    tooltip?: TooltipProp;
    /** Marginal distribution plots in axis margins */
    marginalGraphics?: MarginalGraphicsConfig;
    /** Accessor for unique point IDs, used by point-anchored annotations */
    pointIdAccessor?: ChartAccessor<TDatum, string>;
    /** Legend interaction mode */
    legendInteraction?: LegendInteractionMode;
    /** Legend position */
    legendPosition?: LegendPosition;
    /** Annotation objects to render on the chart */
    annotations?: Datum[];
    /** Additional StreamXYFrame props for advanced customization */
    frameProps?: Partial<Omit<StreamXYFrameProps, "chartType" | "data" | "size">>;
}
/**
 * Scatterplot - Visualize relationships between two continuous variables
 *
 * @example
 * ```tsx
 * <Scatterplot
 *   data={[{x: 1, y: 10}, {x: 2, y: 20}]}
 *   xLabel="Time"
 *   yLabel="Value"
 * />
 * ```
 */
export declare const Scatterplot: {
    <TDatum extends Datum = Datum>(props: ScatterplotProps<TDatum> & React.RefAttributes<RealtimeFrameHandle>): React.ReactElement | null;
    displayName?: string;
};
