import * as React from 'react';
import { type BarElementSlotProps, type BarElementSlots } from "./BarElement.js";
import { type BarItemIdentifier } from "../models/index.js";
import { type BarLabelSlotProps, type BarLabelSlots } from "./BarLabel/BarLabelItem.js";
import { type RendererType } from "../ScatterChart/index.js";
export interface BarPlotSlots extends BarElementSlots, BarLabelSlots {}
export interface BarPlotSlotProps extends BarElementSlotProps, BarLabelSlotProps {}
export interface BarPlotProps {
/**
* A CSS class name applied to the root element.
*/
className?: string;
/**
* If `true`, animations are skipped.
* @default undefined
*/
skipAnimation?: boolean;
/**
* Callback fired when a bar item is clicked.
* @param {MouseEvent} event The event source of the callback.
* @param {BarItemIdentifier} barItemIdentifier The bar item identifier.
*/
onItemClick?(event: MouseEvent, barItemIdentifier: BarItemIdentifier): void;
/**
* Defines the border radius of the bar element.
*/
borderRadius?: number;
/**
* The type of renderer to use for the bar plot.
* - `svg-single`: Renders every bar in a `` element.
* - `svg-batch`: Batch renders bars in `` elements for better performance with large datasets, at the cost of some limitations.
* Read more: https://mui.com/x/react-charts/bars/#performance
*
* @default 'svg-single'
*/
renderer?: RendererType;
/**
* The props used for each component slot.
* @default {}
*/
slotProps?: BarPlotSlotProps;
/**
* Overridable component slots.
* @default {}
*/
slots?: BarPlotSlots;
}
/**
* Demos:
*
* - [Bars](https://mui.com/x/react-charts/bars/)
* - [Bar demonstration](https://mui.com/x/react-charts/bar-demo/)
* - [Stacking](https://mui.com/x/react-charts/stacking/)
*
* API:
*
* - [BarPlot API](https://mui.com/x/api/charts/bar-plot/)
*/
declare function BarPlot(props: BarPlotProps): React.JSX.Element;
declare namespace BarPlot {
var propTypes: any;
}
export { BarPlot };