import { BaseChartRepresentation } from '../../../../../shared-logic/src/ChartsV2/types';
import { Margin } from '../buildMargin';
import { ApproxAxisLabelCountWithAllOptions } from '../../../../../shared-logic/src/Component/types';
import { Result } from '../../../../../shared-logic/src/Result/types';
import { ChartTheme } from '../../../../../shared-logic/src/ChartsV2/getCharSizes';
export declare type VerticalLayoutAdjustments = {
    legendOffset: number;
    xAxisLabelsHiddenOffset: number;
    maxSubgroupLabelWidth?: number;
    leftMarginIncrease?: number;
    bottomMarginIncrease?: number;
};
export declare type HorizontalLayoutAdjustments = {
    legendOffset: number;
    groupingAxisBaselineShift: number;
};
export declare type LayoutPassInput = {
    innerWidth: number;
    innerHeight: number;
    showYAxisLabels: boolean;
};
export declare type LayoutPassOutput<TChart, TExtra extends object = {}> = {
    chart: TChart;
    margin: Margin;
    innerWidth: number;
    innerHeight: number;
    showYAxisLabels: boolean;
} & TExtra;
export declare type ComputeChartLayoutArgs<TChart extends Omit<BaseChartRepresentation, 'y' | 'data'>> = {
    chart: TChart;
    width: number;
    height: number;
    showYAxisLabels: boolean;
    hasLeftTitle: boolean;
    hasBottomTitle: boolean;
    isDualAxisEnabled?: boolean;
    hasDualYAxisTitle?: boolean;
    approxXAxisLabelCount: ApproxAxisLabelCountWithAllOptions;
    showDetailedSubGroupingLabels?: boolean;
    keepAllXLabels?: boolean;
    allowXLabelsAutoRotation?: boolean;
    xKeyField?: Result.Field;
    layoutAdjustments: VerticalLayoutAdjustments;
    theme?: ChartTheme;
    isStacked100?: boolean;
};
