import * as React from 'react';
import { type MakeOptional } from '@mui/x-internals/types';
import { type ChartsToolbarSlotProps, type ChartsToolbarSlots } from "../Toolbar/index.js";
import { type ChartsSlots, type ChartsSlotProps } from "../internals/material/index.js";
import { type ScatterPlotProps, type ScatterPlotSlotProps, type ScatterPlotSlots } from "./ScatterPlot.js";
import { type ChartContainerProps } from "../ChartContainer/index.js";
import { type ChartsAxisProps } from "../ChartsAxis/index.js";
import { type ScatterSeriesType } from "../models/seriesType/scatter.js";
import { type ChartsTooltipProps } from "../ChartsTooltip/index.js";
import { type ChartsTooltipSlots, type ChartsTooltipSlotProps } from "../ChartsTooltip/ChartTooltip.types.js";
import { type ChartsLegendSlotProps, type ChartsLegendSlots } from "../ChartsLegend/index.js";
import { type ChartsOverlayProps, type ChartsOverlaySlotProps, type ChartsOverlaySlots } from "../ChartsOverlay/index.js";
import { type ChartsAxisHighlightProps } from "../ChartsAxisHighlight/index.js";
import { type ChartsAxisSlots, type ChartsAxisSlotProps } from "../models/axis.js";
import { type ChartsGridProps } from "../ChartsGrid/index.js";
import type { UseChartClosestPointSignature } from "../internals/plugins/featurePlugins/useChartClosestPoint/index.js";
import type { ScatterChartPluginSignatures } from "./ScatterChart.plugins.js";
export interface ScatterChartSlots extends ChartsAxisSlots, ScatterPlotSlots, ChartsLegendSlots, ChartsOverlaySlots, ChartsTooltipSlots, ChartsToolbarSlots, Partial<ChartsSlots> {}
export interface ScatterChartSlotProps extends ChartsAxisSlotProps, ScatterPlotSlotProps, ChartsLegendSlotProps, ChartsOverlaySlotProps, Omit<ChartsTooltipSlotProps, 'tooltip'>, ChartsToolbarSlotProps, Partial<ChartsSlotProps> {
  /**
   * Slot props for the tooltip component.
   * @default {}
   */
  tooltip?: Partial<ChartsTooltipProps<'item' | 'none'>>;
}
export type ScatterSeries = MakeOptional<ScatterSeriesType, 'type'>;
export interface ScatterChartProps extends Omit<ChartContainerProps<'scatter', ScatterChartPluginSignatures>, 'series' | 'plugins' | 'onItemClick' | 'experimentalFeatures' | 'highlightedAxis' | 'onHighlightedAxisChange'>, Omit<ChartsAxisProps, 'slots' | 'slotProps'>, Omit<ChartsOverlayProps, 'slots' | 'slotProps'>, Pick<ScatterPlotProps, 'renderer'> {
  /**
   * The series to display in the scatter chart.
   * An array of [[ScatterSeries]] objects.
   */
  series: Readonly<ScatterSeries[]>;
  /**
   * The configuration of axes highlight.
   * @see See {@link https://mui.com/x/react-charts/highlighting/ highlighting docs} for more details.
   * @default { x: 'none', y: 'none' }
   */
  axisHighlight?: ChartsAxisHighlightProps;
  /**
   * Option to display a cartesian grid in the background.
   */
  grid?: Pick<ChartsGridProps, 'vertical' | 'horizontal'>;
  /**
   * If true, the interaction will not use the Voronoi cell and fall back to hover events.
   * @default false
   */
  disableVoronoi?: boolean;
  /**
   * If `true`, the legend is not rendered.
   */
  hideLegend?: boolean;
  /**
   * If true, shows the default chart toolbar.
   * @default false
   */
  showToolbar?: boolean;
  /**
   * Overridable component slots.
   * @default {}
   */
  slots?: ScatterChartSlots;
  /**
   * The props used for each component slot.
   * @default {}
   */
  slotProps?: ScatterChartSlotProps;
  /**
   * Callback fired when clicking on a scatter item.
   * @param {MouseEvent} event The mouse event recorded on the `<svg/>` element if using Voronoi cells. Or the Mouse event from the scatter element, when `disableVoronoi=true`.
   * @param {ScatterItemIdentifier} scatterItemIdentifier The scatter item identifier.
   */
  onItemClick?: ScatterPlotProps['onItemClick'] | UseChartClosestPointSignature['params']['onItemClick'];
}
/**
 * Demos:
 *
 * - [Scatter](https://mui.com/x/react-charts/scatter/)
 * - [Scatter demonstration](https://mui.com/x/react-charts/scatter-demo/)
 *
 * API:
 *
 * - [ScatterChart API](https://mui.com/x/api/charts/scatter-chart/)
 */
declare const ScatterChart: React.ForwardRefExoticComponent<ScatterChartProps & React.RefAttributes<SVGSVGElement>>;
export { ScatterChart };