/// <reference types="react" />
import { ScaleLinear, ScalePoint, ScaleTime } from '@visx/vendor/d3-scale';
import { BubbleChartRepresentation } from '../../../../../shared-logic/src/BubbleChartV2/types';
import { ConditionalFormattingRule } from '../../../../../shared-logic/src/ChartsV2/types';
import { ApproxAxisLabelCountWithAllOptions } from '../../../../../shared-logic/src/Component/types';
import { DataType } from '../../../../../shared-logic/src/Field/types';
import { ChartTheme } from '../../../types';
import { Margin } from '../../utils/buildMargin';
import { ComputeChartLayoutArgs } from '../../utils/layout/sharedLayout.types';
export declare type BubbleChartProps = {
    width: number;
    height: number;
    chart: BubbleChartRepresentation;
    theme?: ChartTheme;
    options: {
        showRoundedTotal: boolean;
        showLegend: boolean;
        removeStroke: boolean;
        axis: {
            showXAxisLabels: boolean;
            showYAxisLabels: boolean;
        };
    };
    uniqueId?: string;
    approxXAxisLabelCount: ApproxAxisLabelCountWithAllOptions;
};
declare type BubbleChartLayoutArgs = ComputeChartLayoutArgs<BubbleChartRepresentation>;
export declare const computeBubbleChartLayout: ({ chart, width, height, showYAxisLabels, hasLeftTitle, hasBottomTitle, approxXAxisLabelCount, layoutAdjustments, theme, }: BubbleChartLayoutArgs) => {
    chart: BubbleChartRepresentation;
    margin: Margin;
    innerWidth: number;
    innerHeight: number;
    showYAxisLabels: boolean;
};
export declare const resolveBubbleChartLayout: (args: BubbleChartLayoutArgs) => {
    chart: BubbleChartRepresentation;
    margin: Margin;
    innerWidth: number;
    innerHeight: number;
    showYAxisLabels: boolean;
};
export declare const BubbleChart: ({ chart, options, theme, width, height, uniqueId, approxXAxisLabelCount, }: BubbleChartProps) => JSX.Element | null;
export declare function Bubbles({ yKeys, data, xScaleKey, xScale, yScale, chart, conditionalFormattingRules, }: {
    yKeys: string[];
    conditionalFormattingRules: ConditionalFormattingRule[];
    data: Array<{
        [x: string]: string | number;
    }>;
    visibleYKeys: string[];
    xScaleKey: string;
    xScaleDataType: DataType;
    xScale: ScalePoint<string> | ScaleTime<number, number, never> | ScaleLinear<number, number, never>;
    yScale: ScaleLinear<number, number, never>;
    chart: BubbleChartRepresentation;
}): JSX.Element;
export {};
