/// <reference types="react" />
import { ApproxAxisLabelCountWithAllOptions } from '../../../../../shared-logic/src/Component/types';
import { RulesField } from '../../../../../shared-logic/src/CustomField/types';
import { Result } from '../../../../../shared-logic/src/Result/types';
import { ConditionalFormattingRule, LegendItem, Step, WaterfallChartOptions, WaterfallChartRepresentation } from '../../../../../shared-logic/src/WaterfallChart/types';
import { ChartTheme } from '../../../types';
import { ComputeChartLayoutArgs, LayoutPassOutput } from '../../utils/layout/sharedLayout.types';
export declare type WaterfallChartProps = {
    width: number;
    height: number;
    chart: WaterfallChartRepresentation;
    steps: Step[];
    options: WaterfallChartOptions;
    theme?: ChartTheme;
    increaseColor: string;
    decreaseColor: string;
    comparison: RulesField | null;
    approxXAxisLabelCount: ApproxAxisLabelCountWithAllOptions;
    xKeyField?: Result.Field;
};
declare type WaterfallLayoutChart = WaterfallChartRepresentation & {
    y: WaterfallChartRepresentation['y'] & {
        keys: string[];
    };
    steps: Step[];
    conditionalFormattingRules: ConditionalFormattingRule[];
    bars: LegendItem[];
};
export declare function filterWaterfallChartByNumericXBounds(chart: WaterfallChartRepresentation, steps: Step[], preserveComparisonBoundaries?: boolean): {
    chart: WaterfallChartRepresentation;
    steps: Step[];
};
export declare const computeWaterfallChartLayout: ({ chart, width, height, showYAxisLabels, hasLeftTitle, hasBottomTitle, approxXAxisLabelCount, xKeyField, layoutAdjustments, theme, }: ComputeChartLayoutArgs<WaterfallLayoutChart>) => LayoutPassOutput<WaterfallLayoutChart, {
    labelRotationData: WaterfallChartRepresentation['x']['labelRotationData'];
}>;
export declare const WaterfallChart: ({ height, width, options, chart, steps, theme, increaseColor, decreaseColor, comparison, approxXAxisLabelCount, xKeyField, }: WaterfallChartProps) => JSX.Element | null;
export {};
