import { TextStyle, EdgeStyle, SurfaceStyle } from "./style";
export declare class Axis {
    nb_points_x: number;
    nb_points_y: number;
    graduation_style: TextStyle;
    axis_style: EdgeStyle;
    arrow_on: boolean;
    grid_on: boolean;
    type_: string;
    name: string;
    color_stroke: any;
    x_step: number;
    y_step: number;
    constructor(nb_points_x: number, nb_points_y: number, graduation_style: TextStyle, axis_style: EdgeStyle, arrow_on?: boolean, grid_on?: boolean, type_?: string, name?: string);
    static deserialize(serialized: any): Axis;
    draw_horizontal_graduations(context: any, mvx: any, scaleX: any, axis_x_start: any, axis_y_start: any, axis_y_end: any, x_step: any, font_size: any, X: any, canvas_width: any): void;
    draw_vertical_graduations(context: any, mvy: any, scaleY: any, axis_x_start: any, axis_x_end: any, axis_y_end: any, y_step: any, Y: any): void;
    draw_horizontal_log_graduations(context: any, mvx: any, scaleX: any, minX: any, maxX: any, axis_y_start: any, axis_y_end: any, font_size: any, X: any, canvas_width: any): void;
    draw_vertical_log_graduations(context: any, mvy: any, scaleY: any, minY: any, maxY: any, axis_x_start: any, axis_x_end: any, axis_y_end: any, canvas_height: any, Y: any): void;
    draw_histogram_vertical_graduations(context: any, height: any, decalage_axis_y: any, max_frequency: any, axis_x_start: any, y_step: any, Y: any, coeff?: number): void;
    draw_horizontal_axis(context: any, mvx: any, scaleX: any, width: any, height: any, init_scaleX: any, minX: any, maxX: any, scroll_x: any, decalage_axis_x: any, decalage_axis_y: any, X: any, Y: any, to_disp_attribute_name: any, log_scale_x: any, x_step?: any): void;
    draw_vertical_axis(context: any, mvy: any, scaleY: any, width: any, height: any, init_scaleY: any, minY: any, maxY: any, scroll_y: any, decalage_axis_x: any, decalage_axis_y: any, X: any, Y: any, to_disp_attribute_name: any, log_scale_y: any, y_step?: any): void;
    draw_histogram_x_axis(context: any, scaleX: any, init_scaleX: any, mvx: any, width: any, height: any, graduations: any, decalage_axis_x: any, decalage_axis_y: any, scroll_x: any, X: any, Y: any, to_disp_attribute_name: any, x_step?: any): void;
    draw_histogram_y_axis(context: any, width: any, height: any, max_frequency: any, decalage_axis_x: any, decalage_axis_y: any, X: any, Y: any, to_disp_attribute_name: any, y_step: any, coeff?: any): void;
    draw_scatter_axis(context: any, mvx: any, mvy: any, scaleX: any, scaleY: any, width: any, height: any, init_scaleX: any, init_scaleY: any, lists: any, to_display_attributes: any, scroll_x: any, scroll_y: any, decalage_axis_x: any, decalage_axis_y: any, X: any, Y: any, canvas_width: any, canvas_height: any, log_scale_x: any, log_scale_y: any): void;
    draw_sc_horizontal_axis(context: any, mvx: any, scaleX: any, width: any, height: any, init_scaleX: any, list: any, to_display_attribute: Attribute, scroll_x: any, decalage_axis_x: any, decalage_axis_y: any, X: any, Y: any, canvas_width: any, log_scale_x?: boolean): void;
    draw_sc_vertical_axis(context: any, mvy: any, scaleY: any, width: any, height: any, init_scaleY: any, list: any, to_display_attribute: any, scroll_y: any, decalage_axis_x: any, decalage_axis_y: any, X: any, Y: any, canvas_height: any, log_scale_y?: boolean): void;
    draw_sc_horizontal_graduations(context: any, mvx: any, scaleX: any, init_scaleX: any, axis_x_start: any, axis_x_end: any, axis_y_start: any, axis_y_end: any, list: any, attribute: any, scroll_x: any, X: any, canvas_width: any): void;
    draw_sc_vertical_graduations(context: any, mvy: any, scaleY: any, init_scaleY: any, axis_x_start: any, axis_x_end: any, axis_y_start: any, axis_y_end: any, list: any, attribute: any, scroll_y: any, Y: any, canvas_height: any): void;
}
export declare class PointFamily {
    color: string;
    point_index: number[];
    name: string;
    constructor(color: string, point_index: number[], name: string);
    static deserialize(serialized: any): PointFamily;
}
/**
 * A class for sorting lists.
 */
export declare class Sort {
    nbPermutations: number;
    permutations: number[];
    constructor();
    MergeSort(items: number[]): number[];
    divide(items: number[]): number[];
    combine(low: number[], high: number[]): number[];
    sortObjsByAttribute(list: any[], attribute_name: string): any[];
}
export declare class Tooltip {
    surface_style: SurfaceStyle;
    text_style: TextStyle;
    attribute_names?: string[];
    message?: Text;
    tooltip_radius: number;
    type_: string;
    name: string;
    constructor(surface_style: SurfaceStyle, text_style: TextStyle, attribute_names?: string[], message?: Text, tooltip_radius?: number, type_?: string, name?: string);
    static deserialize(serialized: any): Tooltip;
    isTooltipInsideCanvas(cx: any, cy: any, size: any, mvx: any, mvy: any, scaleX: any, scaleY: any, canvasWidth: any, canvasHeight: any): boolean;
    refresh_nb_digits(x_nb_digits: any, y_nb_digits: any): [number, number];
    initialize_text_mergeOFF(context: any, x_nb_digits: any, y_nb_digits: any, elt: any): [string[], number];
    initialize_text_mergeON(context: any, x_nb_digits: any, y_nb_digits: any, point: any, initial_point_list: any, elements: any, axes: any): [string[], number];
    draw(context: any, point: any, mvx: any, mvy: any, scaleX: any, scaleY: any, canvas_width: any, canvas_height: any, X: any, Y: any, x_nb_digits: any, y_nb_digits: any, point_list: any, initial_point_list: any, elements: any, mergeON: any, axes: any, log_scale_x: any, log_scale_y: any): void;
    manage_tooltip(context: any, mvx: any, mvy: any, scaleX: any, scaleY: any, canvas_width: any, canvas_height: any, tooltip_list: any, X: any, Y: any, x_nb_digits: any, y_nb_digits: any, point_list: any, initial_point_list: any, elements: any, mergeON: any, axes: any, log_scale_x: any, log_scale_y: any): void;
    draw_primitive_tooltip(context: any, scale: any, mvx: any, mvy: any, X: any, Y: any, x: any, y: any, canvas_width: any, canvas_height: any): void;
}
export declare class Attribute {
    name: string;
    type_: string;
    list: any[];
    alias: string;
    constructor(name: string, type_: string);
    static deserialize(serialized: any): Attribute;
    copy(): Attribute;
}
export declare class Window {
    height: number;
    width: number;
    name?: string;
    constructor(height: number, width: number, name?: string);
    static deserialize(serialized: any): Window;
}
export declare function check_package_version(package_version: string, requirement: string): void;
/**
 * A generic equals function that compares values and not references.
 */
export declare function equals(a: any, b: any): boolean;
export declare function genColor(): string;
export declare function getCurvePoints(pts: any, tension: any, isClosed: any, numOfSegments: any): any[];
export declare function merge_alert(): void;
export declare function permutator(inputArr: any): any[];
/**
 * Returns a dictionary containing dict_ + every default_dict_'s keys that dict_ doesn't have.
 * ex: dict_ = {color: red}; default_dict_ = {color: blue, shape: circle}
 * set_default_values(dict_, default_dict_) = {color: red, shape: circle}
 * @param dict_ the current dictionary
 * @param default_dict_ a list with all default value
 *
 * @returns the input dictionaries with potential new values
 */
export declare function set_default_values(dict_: any, default_dict_: any): {
    [k: string]: unknown;
};
export declare function TypeOf(element: any): string;
export declare function drawLines(ctx: any, pts: any, first_elem: any): void;
export declare function export_to_txt(filename: any, text: any): void;
export declare function export_to_csv(rows: any, filename?: string): void;
export declare class RubberBand {
    attributeName: string;
    minValue: number;
    maxValue: number;
    constructor(attributeName: string, minValue: number, maxValue: number);
    static deserialize(serialized: any): RubberBand;
    static fromFormerFormat(formerFormatValue: [string, [number, number]]): RubberBand;
    get length(): number;
    includesValue(value: any, axis: Attribute): boolean;
}
