import type { DefaultizedProps, DistributiveOmit } from '@mui/x-internals/types';
import type { ChartSeriesType, ChartsSeriesConfig } from "./config.js";
type AllSeriesType<SeriesType extends ChartSeriesType = ChartSeriesType> = ChartsSeriesConfig[SeriesType]['seriesProp'];
type DefaultizedSeriesType<SeriesType extends ChartSeriesType = ChartSeriesType> = ChartsSeriesConfig[SeriesType]['series'];
export type SeriesItemIdentifier<SeriesType extends ChartSeriesType> = SeriesType extends any ? DistributiveOmit<ChartsSeriesConfig[SeriesType]['itemIdentifier'], 'type'> : never;
export type SeriesItemIdentifierWithType<SeriesType extends ChartSeriesType> = SeriesType extends any ? ChartsSeriesConfig[SeriesType]['itemIdentifier'] : never;
export type SeriesItemIdentifierWithData<SeriesType extends ChartSeriesType> = SeriesType extends any ? ChartsSeriesConfig[SeriesType]['itemIdentifierWithData'] : never;
/**
 * Identifies an highlighted item or series.
 */
export type HighlightItemIdentifier<SeriesType extends ChartSeriesType> = SeriesType extends any ? DistributiveOmit<ChartsSeriesConfig[SeriesType]['highlightIdentifier'], 'type'> : never;
export type HighlightItemIdentifierWithType<SeriesType extends ChartSeriesType> = SeriesType extends any ? ChartsSeriesConfig[SeriesType]['highlightIdentifier'] : never;
export type FocusedItemIdentifier<SeriesType extends ChartSeriesType = ChartSeriesType> = SeriesType extends 'line' | 'radar' ? DefaultizedProps<ChartsSeriesConfig[SeriesType]['itemIdentifier'], 'dataIndex'> : SeriesType extends 'heatmap' ? DefaultizedProps<ChartsSeriesConfig[SeriesType]['itemIdentifier'], 'xIndex' | 'yIndex'> : ChartsSeriesConfig[SeriesType]['itemIdentifier'];
export { type SeriesId } from "./common.js";
export type { CartesianChartSeriesType, StackableChartSeriesType } from "./config.js";
export * from "./line.js";
export * from "./bar.js";
export * from "./scatter.js";
export * from "./pie.js";
export * from "./radar.js";
export type { AllSeriesType, DefaultizedSeriesType };