import * as widgets from '@jupyter-widgets/base';
import * as d3 from 'd3';
import { MarkModel } from './MarkModel';
import { Figure } from './Figure';
export declare abstract class Mark extends widgets.WidgetView {
    initialize(): void;
    render(): Promise<void>;
    abstract draw(animate?: any): any;
    abstract set_ranges(): any;
    set_scale_views(): Promise<void>;
    set_positional_scales(): void;
    initialize_additional_scales(): void;
    set_internal_scales(): void;
    create_listeners(): void;
    remove(): void;
    draw_legend(elem: any, x_disp: any, y_disp: any, inter_x_disp: any, inter_y_disp: any): number[];
    highlight_axes(): void;
    unhighlight_axes(): void;
    invert_range(start_pxl: any, end_pxl: any): any[];
    invert_point(pxl: any): void;
    invert_multi_range(array_pixels: any): any;
    update_visibility(model: any, visible: any): void;
    get_colors(index: any): string;
    get_mark_color(data: any, index: any): string;
    get_mark_opacity(data: any, index: any): any;
    selected_style_updated(model: any, style: any): void;
    unselected_style_updated(model: any, style: any): void;
    style_updated(new_style: any, indices: any, elements?: any): void;
    apply_styles(style_arr?: any): void;
    abstract clear_style(style_dict: any, indices?: any, elements?: any): any;
    abstract set_default_style(indices: any, elements?: any): any;
    abstract set_style_on_elements(style: any, indices: any, elements?: any): any;
    abstract relayout(): any;
    /**
     * This function sets the x and y view paddings for the mark using the
     * variables xPadding and yPadding
     */
    abstract compute_view_padding(): any;
    show_tooltip(mouse_events?: any): void;
    move_tooltip(mouse_events?: any): void;
    hide_tooltip(): void;
    refresh_tooltip(tooltip_interactions?: boolean): void;
    create_tooltip(): void;
    event_dispatcher(event_name: any, data?: any): void;
    custom_msg_sender(event_name: any): void;
    reset_click(): void;
    private reset_hover;
    private reset_legend_click;
    private reset_legend_hover;
    process_click(interaction: any): void;
    process_hover(interaction: any): void;
    process_legend_click(interaction: any): void;
    process_legend_hover(interaction: any): void;
    process_interactions(): void;
    mouse_over(): void;
    mouse_out(): void;
    mouse_move(): void;
    is_hover_element(elem: any): boolean;
    set x_padding(value: number);
    get x_padding(): number;
    set y_padding(value: number);
    get y_padding(): number;
    bisect: (x: number[], y: number) => number;
    d3el: d3.Selection<HTMLElement, any, any, any>;
    display_el_classes: string[];
    event_listeners: {
        element_clicked?: (args: any) => void;
        parent_clicked?: (args: any) => void;
        legend_mouse_out?: (args: any) => void;
        legend_mouse_over?: (args: any) => void;
        legend_clicked?: (args: any) => void;
        mouse_out?: (args: any) => void;
        mouse_move?: (args: any) => void;
        mouse_over?: (args: any) => void;
    };
    event_metadata: {
        [key: string]: {
            [key: string]: any;
        };
    };
    parent: Figure;
    scales: {
        rotation?: any;
        skew?: any;
        opacity?: any;
        size?: any;
        x?: any;
        y?: any;
        color?: any;
        projection?: any;
        count?: any;
        sample?: any;
        column?: any;
        row?: any;
        link_color?: any;
        width?: any;
    };
    selected_indices: (number | [number, number])[];
    selected_style: {
        [key: string]: string;
    };
    tooltip_div: d3.Selection<any, any, any, any>;
    tooltip_view: widgets.DOMWidgetView;
    unselected_style: {
        [key: string]: string;
    };
    uuid: string;
    xPadding: number;
    yPadding: number;
    model: MarkModel;
}
