import { Mark } from './Mark';
import { BarGroupValue, BarsModel } from './BarsModel';
export declare class Bars extends Mark {
    render(): Promise<void>;
    private setScaleOrientation;
    set_ranges(): void;
    set_positional_scales(): void;
    private adjustOffset;
    create_listeners(): void;
    process_click(interaction: string): void;
    private drawZeroLine;
    private updateInternalScales;
    relayout(): void;
    invert_point(pixel: any): void;
    selector_changed(point_selector: any, rect_selector: any): any[];
    private updateSelected;
    draw(animate?: boolean): void;
    private drawBars;
    /**
     * Get the vertical label offset from the model
     */
    get offsetVertical(): number;
    /**
     * Get the horizontal label offset from the model
     */
    get offsetHorizontal(): number;
    /**
     * Get the baseline parameter from the model
     */
    get baseLine(): number;
    /**
     * Get the bar chart's orientation
     */
    get orientation(): 'horizontal' | 'vertical';
    /**
     * Get the bar chart's alignment
     */
    get align(): 'center' | 'left' | 'right';
    /**
     * Main entry point function for adding bar labels
     * @param barGroups - D3 selection for all bar groups
     * @param bandWidth - Bandwidth of the x or y axis
     * @param dom - X or y axis (depending on oridnetation)
     * @param rang - X or y axis (depending on orientation)
     */
    private manageBarLabels;
    /**
     * All bars are stacked by default. The only other value this parameter can take is 'grouped'
     * @param barGroups - D3 selection for bar groups
     * @param bandWidth - Bandwidth parameter for the bar dimensions
     * @param dom - X or y axis (depending on oridnetation)
     * @param rang - X or y axis (depending on oridnetation)
     */
    private stackedBarLabels;
    /**
     * Add labels for a chart with grouped bars
     * @param barGroups - D3 selection for bar group
     * @param bandWidth - bandwidth parameter for the X axis
     */
    private groupedBarLabels;
    /**
     * Applies CSS translate to shift label position according
     * to vertical/horizontal offsets
     * @param d - Data point
     * @param offsetHorizontal - Horizontal offset, in pixels, of the label
     * @param offsetVertical - Vertical offset, in pixels, of the label
     * @param bandWidth - Bandwidth parameter for the bar dimantions
     */
    private transformBarLabel;
    /**
     * Determines the value of the text-anchor CSS attribute
     * @param d - Data point
     * @param i - Index number
     */
    private styleBarLabelTextAnchor;
    /**
     * Determines the value of the dominant-base-line CSS attribute
     * @param d - Data point
     * @param i - Index number
     */
    private styleBarLabelDominantBaseline;
    /**
     * Adds CSS styling to the bar labels
     */
    private updateBarLabelsStyle;
    private updateType;
    private updateColors;
    draw_legend(elem: any, x_disp: any, y_disp: any, inter_x_disp: any, inter_y_disp: any): number[];
    clear_style(style: any, indices: any): void;
    set_style_on_elements(style: any, indices: number[]): void;
    set_default_style(indices: number[]): void;
    get_mark_color(data: BarGroupValue, index: number): string;
    get_mark_opacity(data: BarGroupValue, index: any): any;
    private set_x_range;
    private bar_click_handler;
    private reset_selection;
    compute_view_padding(): void;
    private domOffset;
    private domScale;
    private legendEl;
    private pixelCoords;
    private rangeScale;
    private stackedScale;
    private groupedScale;
    private xPixels;
    model: BarsModel;
}
