import { PlotData } from './plot-data';
import { Point2D } from './primitives';
import { Attribute, PointFamily, Window } from './utils';
/**
 * MultiplePlots takes a list of elements (dictionaries) that represent vectors and displays it throught different representations
 * such as ParallelPlot or ScatterPlot. On top of that, each element can be represented by a PrimitiveGroup or a Graph2D.
 */
export declare class MultiplePlots {
    data: any[];
    width: number;
    height: number;
    buttons_ON: boolean;
    canvas_id: string;
    context_show: any;
    context_hidden: any;
    context: any;
    objectList: PlotData[];
    dataObjects: any[];
    nbObjects: number;
    initial_coords: [number, number][];
    points: Point2D[];
    sizes: Window[];
    move_plot_index: number;
    clicked_index_list: number[];
    clickedPlotIndex: number;
    last_index: number;
    small_length_nb_objects: number;
    big_length_nb_objects: number;
    manipulation_bool: boolean;
    button_y: number;
    button_w: number;
    button_h: number;
    transbutton_x: number;
    selectDependency_bool: boolean;
    selectDep_x: number;
    view_bool: boolean;
    view_button_x: number;
    export_button_x: number;
    initial_objectsX: number[];
    initial_objectsY: number[];
    initial_object_width: number[];
    initial_object_height: number[];
    initial_mouseX: number;
    initial_mouseY: number;
    sorted_list: number[];
    display_order: number[];
    all_attributes: Attribute[];
    selected_point_index: number[];
    dep_selected_points_index: number[];
    point_families: PointFamily[];
    to_display_plots: number[];
    primitive_dict: {};
    shown_datas: any[];
    hidden_datas: any[];
    canvas: any;
    settings_on_initial_widths: number[];
    settings_on_initial_heights: number[];
    obj_settings_on: number;
    view_on_disposition: boolean;
    click_on_button: boolean;
    padding: number;
    constructor(data: any[], width: number, height: number, buttons_ON: boolean, canvas_id: string);
    initialize_sizes(): void;
    initialize_all_attributes(): void;
    initialize_point_families(): void;
    change_point_family_order(index1: number, index2: number): void;
    resize_multiplot(new_width: number, new_height: number): void;
    initializeButtons(): void;
    store_dimensions(): void;
    draw_manipulation_button(): void;
    draw_selection_dependency_button(): void;
    draw_clean_view_button(): void;
    draw_export_button(): void;
    draw_buttons(): void;
    click_on_view_action(): void;
    click_on_export_action(): void;
    click_on_button_action(click_on_translation_button: any, click_on_selectDep_button: any, click_on_view: any, click_on_export: any): void;
    initializeObjectContext(object: PlotData): void;
    define_canvas(canvas_id: string): void;
    initialize_new_plot_data(new_plot_data: PlotData): void;
    get_attribute(name: string): Attribute;
    add_scatterplot(attr_x: Attribute, attr_y: Attribute): void;
    add_parallelplot(attributes: Attribute[]): void;
    add_primitivegroup(serialized: string, point_index: number): void;
    remove_primitivegroup(point_index: any): void;
    remove_all_primitivegroups(): void;
    initialize_containers_dicts(new_plot_data: any, associated_points: number[]): any;
    call_layout(new_plot_data: any, attribute_names?: string[]): any;
    add_primitive_group_container(serialized?: {
        name: string;
        package_version: string;
        primitive_groups: any[];
        type_: string;
    }, associated_points?: number[], attribute_names?: string[]): number;
    add_primitive_group_to_container(serialized: any, container_index: any, point_index: any): void;
    remove_primitive_group_from_container(point_index: any, container_index: any): void;
    remove_all_primitive_groups_from_container(container_index: any): void;
    remove_plot(index: any): void;
    getObjectIndex(x: any, y: any): number[];
    getLastObjectIndex(x: any, y: any): number;
    clear_object(index: any): void;
    clearAll(): void;
    show_plot(index: number): void;
    hide_plot(index: number): void;
    redrawAllObjects(): void;
    redraw_object(): void;
    store_datas(): void;
    isZwSelectBoolOn(): boolean;
    translateSelectedObject(move_plot_index: any, tx: any, ty: any): void;
    translateAllObjects(tx: any, ty: any): void;
    setAllInteractionsToOff(): void;
    setAllInterpolationToOFF(): void;
    refreshAllManipulableBool(): void;
    manipulation_bool_action(): void;
    refresh_objects_point_families(): void;
    add_point_family(point_family: PointFamily): void;
    remove_point_family(index: number): void;
    add_points_to_family(points_index_to_add: number[], family_index: number): void;
    remove_points_from_family(points_index_to_remove: number[], family_index: number): void;
    selectDep_action(): void;
    delete_unwanted_vertex(vertex_infos: any): any;
    initialize_clickOnVertex(mouse1X: any, mouse1Y: any): [boolean, Object];
    reorder_resize_style(resize_style: any): any;
    setCursorStyle(mouse2X: any, mouse2Y: any): void;
    refresh_dep_selected_points_index(): void;
    initializeMouseXY(mouse1X: any, mouse1Y: any): void;
    initializeObjectXY(): void;
    initialize_objects_hw(): void;
    resetAllObjects(): void;
    reset_all_selected_points(): void;
    reset_selected_points_except(list: number[]): void;
    refresh_selected_point_index(): void;
    getSortedList(): any[];
    clear_objects_selected_points(object_index: number): void;
    select_points_manually(index_list: number[], object_index: number): void;
    clean_view(): void;
    resizeObject(vertex_infos: any, tx: any, ty: any): void;
    getSelectionONObject(): number;
    add_to_rubberbands_manual(obj_index: any, rubber_index: number, min: number, max: number): void;
    mouse_move_scatter_communication(): void;
    mouse_up_scatter_communication(): void;
    scatter_communication(selection_coords: [number, number][], to_display_attributes: Attribute[], isSelectingObjIndex: number): void;
    mouse_move_pp_communication(): void;
    pp_communication(deprecatedRubberBands: [string, [number, number]][], actualPP: any): void;
    mouse_move_histogram_communication(): void;
    histogram_communication(index: any): void;
    dependency_color_propagation(selected_axis_name: string, vertical: boolean, inverted: boolean, hexs: string[]): void;
    refresh_selected_object_from_index(): void;
    manage_mouse_interactions(mouse2X: number, mouse2Y: number): void;
    get_drawing_rubberbands_obj_index(type_: any): number;
    get_selected_axis_info(): [string, boolean, boolean, string[], boolean];
    zoom_elements(mouse3X: number, mouse3Y: number, event: number): void;
    get_settings_on_object(): number;
    settings_padding(index: any, coef?: number): void;
    dbl_click_manage_settings_on(object_index: number): void;
    single_click_manage_settings_on(object_index: number): void;
    manage_selected_point_index_changes(old_selected_index: number[]): void;
    color_associated_scatter_point(point_index: any): void;
    mouse_over_primitive_group(): void;
    mouse_over_scatter_plot(): void;
    has_primitive_group_container(): boolean;
    save_canvas(): void;
    restore_previous_canvas(): void;
    restore_next_canvas(): void;
    is_on_button(mouseX: any, mouseY: any): boolean;
    mouse_interaction(): void;
}
export declare class MultiplotCom {
    static sc_to_pp_communication(coordinates: [number, number], attribute: any, index: any, plot_data: PlotData): void;
    static sc_to_sc_communication(selection_coords: [number, number][], to_display_attributes: Attribute[], plot_data: PlotData): void;
    static histogram_to_histogram_communication(histogram1: any, histogram2: any): void;
    static histogram_to_pp_communication(histogram: any, parallel_plot: any): void;
    static histogram_to_scatter_communication(histogram: any, scatter: any): void;
}
export declare function save_multiplot(multiplot: MultiplePlots): {
    data: any[];
    coords: any[];
    sizes: any[];
    dep_selected_point_index: number[];
    plots: any[];
    canvas_id: string;
};
export declare function load_multiplot(dict_: any, elements: any, width: any, height: any, buttons_ON: any, canvas_id?: any): MultiplePlots;
