import { BaseChartRepresentation, Tick } from '../ChartsV2/types';
import { DataType } from '../Field/types';
export declare type KeyId = string;
export declare type Operator = string;
export declare type ConditionalFormattingRule = {
    operator: Operator;
    value: any;
    color: string;
    yKey: KeyId;
};
export declare type Axis<SupportedVizzlyDataTypes, AxisKeys> = {
    ticks: Tick<SupportedVizzlyDataTypes>[];
    scale: {
        dataType: DataType;
        key: KeyId | null;
        ordering: 'asc' | 'desc' | null;
        min: SupportedVizzlyDataTypes | null;
        max: SupportedVizzlyDataTypes | null;
    };
    postfix: string;
    prefix: string;
    title: string | null;
} & AxisKeys;
export declare type Key = {
    key: KeyId;
    keyFormatted: string;
    dataType: DataType;
};
export declare type DataItem = {
    value: number | string | null;
    formattedValue: string | null;
    displayValue?: string | null;
};
export declare type Data = {
    [keyId: string]: DataItem;
};
export declare type Step = {
    x: Date | string | number | null;
    y: number;
    start: number;
    end: number;
};
export declare type DateTimeFormatter = {
    formatter: (date: Date) => string;
    description: string;
};
export declare type NumberFormatter = {
    formatter: (number: number | undefined | null, noValueReplacement?: string) => string;
    description: string;
};
export declare type WaterfallChartRepresentation = Omit<BaseChartRepresentation, 'y'> & {
    y: Axis<number, {
        key: KeyId;
    }>;
};
export declare type WaterfallChartOptions = {
    showTooltipRoundedTotal: boolean;
    showLegend: boolean;
    showLabels: boolean;
    removeStroke: boolean;
    axis: {
        showXAxisLabels: boolean;
        showYAxisLabels: boolean;
    };
};
export declare type LegendItemStyle = {
    type: 'bar';
};
export declare type LegendItem = {
    yKey: KeyId;
    color: string;
    style: LegendItemStyle;
};
