import * as React from 'react';
import { type SlotComponentPropsFromProps } from '@mui/x-internals/types';
import { type AnimatedAreaProps } from "./AnimatedArea.js";
import { type SeriesId } from "../models/seriesType/common.js";
/**
 * @deprecated Use `LineClasses` instead.
 */
export interface AreaElementClasses {
  /**
   * Styles applied to the root element.
   * @deprecated Use `lineClasses.area` instead.
   */
  root: string;
  /** Styles applied to the root element when highlighted. */
  highlighted: string;
  /** Styles applied to the root element when faded. */
  faded: string;
  /**
   * Styles applied to the root element for a specified series.
   * Needs to be suffixed with the series ID: `.${areaElementClasses.series}-${seriesId}`.
   * @deprecated Use `[data-series="${seriesId}"]` selector instead.
   */
  series: string;
}
/**
 * @deprecated Use `LineClassKey` instead.
 */
export type AreaElementClassKey = keyof AreaElementClasses;
export interface AreaElementOwnerState {
  id: SeriesId;
  color: string;
  gradientId?: string;
  isFaded: boolean;
  isHighlighted: boolean;
  classes?: Partial<AreaElementClasses>;
}
/**
 * @deprecated Use `getLineUtilityClass` instead.
 */
export declare function getAreaElementUtilityClass(slot: string): string;
/**
 * @deprecated Use `lineClasses` instead.
 */
export declare const areaElementClasses: AreaElementClasses;
export interface AreaElementSlots {
  /**
   * The component that renders the area.
   * @default AnimatedArea
   */
  area?: React.JSXElementConstructor<AnimatedAreaProps>;
}
export interface AreaElementSlotProps {
  area?: SlotComponentPropsFromProps<AnimatedAreaProps, {}, AreaElementOwnerState>;
}
export interface AreaElementProps extends Omit<AreaElementOwnerState, 'isFaded' | 'isHighlighted'>, Pick<AnimatedAreaProps, 'skipAnimation'>, Omit<React.SVGProps<SVGPathElement>, 'ref' | 'color' | 'id'> {
  d: string;
  /**
   * The props used for each component slot.
   * @default {}
   */
  slotProps?: AreaElementSlotProps;
  /**
   * Overridable component slots.
   * @default {}
   */
  slots?: AreaElementSlots;
}
/**
 * Demos:
 *
 * - [Lines](https://mui.com/x/react-charts/lines/)
 * - [Areas demonstration](https://mui.com/x/react-charts/areas-demo/)
 *
 * API:
 *
 * - [AreaElement API](https://mui.com/x/api/charts/area-element/)
 */
declare function AreaElement(props: AreaElementProps): import("react/jsx-runtime").JSX.Element;
declare namespace AreaElement {
  var propTypes: any;
}
export { AreaElement };