import type { ChartXValue, NormalizedSeries } from "../data";
export type BarGeometryMode = "grouped" | "stacked" | "stacked100";
export type ProjectedBarBand<TData = unknown> = {
    x: number;
    width: number;
    raw?: TData;
};
export type ProjectBarBand<TData = unknown> = (value: ChartXValue, dataIndex: number, raw: TData | undefined) => ProjectedBarBand<TData> | undefined;
export type ProjectBarValueScale = (value: number) => number | undefined;
export type ProjectedBarRect<TData = unknown> = {
    key: string;
    seriesKey: string;
    seriesLabel: string;
    seriesIndex: number;
    dataIndex: number;
    xValue: ChartXValue;
    value: number;
    scaledValue: number;
    x: number;
    y: number;
    width: number;
    height: number;
    baselineY: number;
    defined: boolean;
    raw: TData | undefined;
    stackStart?: number;
    stackEnd?: number;
};
export type BarGeometry<TData = unknown> = {
    mode: BarGeometryMode;
    bars: Array<ProjectedBarRect<TData>>;
};
export type BuildBarGeometryOptions<TData = unknown> = {
    series: Array<NormalizedSeries<TData>>;
    xBand: ProjectBarBand<TData>;
    yScale: ProjectBarValueScale;
    mode?: BarGeometryMode;
    baselineValue?: number;
    barWidthRatio?: number;
    barGapRatio?: number;
    dataIndexOffset?: number;
};
export declare const buildBarGeometry: <TData = unknown>({ series, xBand, yScale, mode, baselineValue, barWidthRatio: rawBarWidthRatio, barGapRatio: rawBarGapRatio, dataIndexOffset }: BuildBarGeometryOptions<TData>) => BarGeometry<TData>;
//# sourceMappingURL=barRects.d.ts.map