import * as React from 'react';
import { type MakeOptional } from '@mui/x-internals/types';
import { type ChartsSlots, type ChartsSlotProps } from "../internals/material/index.js";
import { type AreaPlotProps, type AreaPlotSlotProps, type AreaPlotSlots } from "./AreaPlot.js";
import { type LinePlotProps, type LinePlotSlotProps, type LinePlotSlots } from "./LinePlot.js";
import { type ChartContainerProps } from "../ChartContainer/index.js";
import { type MarkPlotProps, type MarkPlotSlotProps, type MarkPlotSlots } from "./MarkPlot.js";
import { type ChartsAxisProps } from "../ChartsAxis/ChartsAxis.js";
import { type LineSeriesType } from "../models/seriesType/line.js";
import { type ChartsTooltipSlots, type ChartsTooltipSlotProps } from "../ChartsTooltip/ChartTooltip.types.js";
import { type ChartsLegendSlotProps, type ChartsLegendSlots } from "../ChartsLegend/index.js";
import { type ChartsAxisHighlightProps } from "../ChartsAxisHighlight/index.js";
import { type ChartsAxisSlotProps, type ChartsAxisSlots } from "../models/axis.js";
import { type LineHighlightPlotSlots, type LineHighlightPlotSlotProps } from "./LineHighlightPlot.js";
import { type ChartsGridProps } from "../ChartsGrid/index.js";
import { type ChartsOverlayProps, type ChartsOverlaySlotProps, type ChartsOverlaySlots } from "../ChartsOverlay/index.js";
import type { LineChartPluginSignatures } from "./LineChart.plugins.js";
import type { ChartsToolbarSlots, ChartsToolbarSlotProps } from "../Toolbar/index.js";
export interface LineChartSlots extends ChartsAxisSlots, AreaPlotSlots, LinePlotSlots, MarkPlotSlots, LineHighlightPlotSlots, ChartsLegendSlots, ChartsOverlaySlots, ChartsTooltipSlots, ChartsToolbarSlots, Partial<ChartsSlots> {}
export interface LineChartSlotProps extends ChartsAxisSlotProps, AreaPlotSlotProps, LinePlotSlotProps, MarkPlotSlotProps, LineHighlightPlotSlotProps, ChartsLegendSlotProps, ChartsOverlaySlotProps, ChartsTooltipSlotProps, ChartsToolbarSlotProps, Partial<ChartsSlotProps> {}
export type LineSeries = MakeOptional<LineSeriesType, 'type'>;
export interface LineChartProps extends Omit<ChartContainerProps<'line', LineChartPluginSignatures>, 'series' | 'plugins' | 'zAxis'>, Omit<ChartsAxisProps, 'slots' | 'slotProps'>, Omit<ChartsOverlayProps, 'slots' | 'slotProps'> {
  /**
   * The series to display in the line chart.
   * An array of [[LineSeries]] objects.
   */
  series: Readonly<LineSeries[]>;
  /**
   * Option to display a cartesian grid in the background.
   */
  grid?: Pick<ChartsGridProps, 'vertical' | 'horizontal'>;
  /**
   * The configuration of axes highlight.
   * @see See {@link https://mui.com/x/react-charts/highlighting/ highlighting docs} for more details.
   * @default { x: 'line' }
   */
  axisHighlight?: ChartsAxisHighlightProps;
  /**
   * If `true`, the legend is not rendered.
   */
  hideLegend?: boolean;
  /**
   * If `true`, render the line highlight item.
   */
  disableLineItemHighlight?: boolean;
  /**
   * Overridable component slots.
   * @default {}
   */
  slots?: LineChartSlots;
  /**
   * The props used for each component slot.
   * @default {}
   */
  slotProps?: LineChartSlotProps;
  /**
   * Callback fired when an area element is clicked.
   */
  onAreaClick?: AreaPlotProps['onItemClick'];
  /**
   * Callback fired when a line element is clicked.
   */
  onLineClick?: LinePlotProps['onItemClick'];
  /**
   * Callback fired when a mark element is clicked.
   */
  onMarkClick?: MarkPlotProps['onItemClick'];
  /**
   * If `true`, animations are skipped.
   * @default false
   */
  skipAnimation?: boolean;
  /**
   * If true, shows the default chart toolbar.
   * @default false
   */
  showToolbar?: boolean;
}
/**
 * Demos:
 *
 * - [Lines](https://mui.com/x/react-charts/lines/)
 * - [Line demonstration](https://mui.com/x/react-charts/line-demo/)
 *
 * API:
 *
 * - [LineChart API](https://mui.com/x/api/charts/line-chart/)
 */
declare const LineChart: React.ForwardRefExoticComponent<LineChartProps & React.RefAttributes<SVGSVGElement>>;
export { LineChart };