import * as React from 'react';
import { type ChartsSlotProps, type ChartsSlots } from "../internals/material/index.js";
import { type ChartsProviderProps } from "../context/ChartsProvider/index.js";
import { type ChartSeriesType } from "../models/seriesType/config.js";
import { type ChartAnyPluginSignature } from "../internals/plugins/models/plugin.js";
import { type AllPluginSignatures } from "../internals/plugins/allPlugins.js";
import { type ChartsLocalizationProviderProps } from "../ChartsLocalizationProvider/index.js";
export interface ChartsDataProviderSlots extends ChartsSlots {}
export interface ChartsDataProviderSlotProps extends ChartsSlotProps {}
export type ChartsDataProviderProps<TSeries extends ChartSeriesType = ChartSeriesType, TSignatures extends readonly ChartAnyPluginSignature[] = AllPluginSignatures<TSeries>> = React.PropsWithChildren<ChartsProviderProps<TSeries, TSignatures>['pluginParams'] & Pick<ChartsProviderProps<TSeries, TSignatures>, 'seriesConfig' | 'plugins'>> & ChartsLocalizationProviderProps & {
  /**
   * Slots to customize charts' components.
   */
  slots?: Partial<ChartsDataProviderSlots>;
  /**
   * The props for the slots.
   */
  slotProps?: Partial<ChartsDataProviderSlotProps>;
};
/**
 * Orchestrates the data providers for the chart components and hooks.
 *
 * Use this component if you have custom HTML components that need to access the chart data.
 *
 * Demos:
 *
 * - [Composition](https://mui.com/x/react-charts/composition/)
 *
 * API:
 *
 * - [ChartsDataProvider API](https://mui.com/x/api/charts/charts-data-provider/)
 *
 * @example
 * ```jsx
 * <ChartsDataProvider
 *   series={[{ label: "Label", type: "bar", data: [10, 20] }]}
 *   xAxis={[{ data: ["A", "B"], scaleType: "band", id: "x-axis" }]}
 * >
 *   <ChartsSurface>
 *      <BarPlot />
 *      <ChartsXAxis axisId="x-axis" />
 *   </ChartsSurface>
 *   {'Custom Legend Component'}
 * </ChartsDataProvider>
 * ```
 */
declare function ChartsDataProvider<TSeries extends ChartSeriesType = ChartSeriesType, TSignatures extends readonly ChartAnyPluginSignature[] = AllPluginSignatures<TSeries>>(props: ChartsDataProviderProps<TSeries, TSignatures>): import("react/jsx-runtime").JSX.Element;
declare namespace ChartsDataProvider {
  var propTypes: any;
}
export { ChartsDataProvider };