import { ChartColors } from '../../style/theme';
import { UnitRange } from './utils';
export type TimeType = {
    type: 'time';
    timeRange: {
        startDate: Date;
        endDate: Date;
        interval: number;
    };
};
export type Point = {
    key: string | number;
    values: {
        label: string;
        value: number;
    }[];
};
export type BarchartBars = readonly {
    readonly label: string;
    /**
     * When using a time type, the data should be an array of [Date, value]
     * so use Date instead of timestamp for transformation data in format fn
     */
    readonly data: readonly (readonly [string | Date, number | string])[];
}[];
export type BarchartTooltipFn<T extends BarchartBars> = (currentPoint: {
    category: string | number;
    values: {
        label: T[number]['label'];
        value: number;
        isHovered: boolean;
    }[];
}) => React.ReactNode;
export type BarchartSortFn<T extends BarchartBars> = (pointA: Record<T[number]['label'], number> & {
    category: string | number;
}, pointB: Record<T[number]['label'], number> & {
    category: string | number;
}) => 1 | -1 | 0;
export type BarchartProps<T extends BarchartBars> = {
    type: 'category' | TimeType;
    bars: T;
    colorSet: Record<T[number]['label'], ChartColors | (string & {})>;
    tooltip?: BarchartTooltipFn<T>;
    defaultSort?: BarchartSortFn<T>;
    unitRange?: UnitRange;
    helpTooltip?: string;
    stacked?: boolean;
    title?: string;
    secondaryTitle?: string;
    rightTitle?: React.ReactNode;
    height?: number;
    isLoading?: boolean;
};
export declare const Barchart: <T extends BarchartBars>(props: BarchartProps<T>) => import("react/jsx-runtime").JSX.Element;
//# sourceMappingURL=Barchart.component.d.ts.map