import * as d3 from 'd3';
import * as selector from './Selector';
import { Mark } from './Mark';
declare abstract class BrushMixinXYSelector extends selector.BaseXYSelector {
    brush_render(): void;
    color_change(): void;
    brush_start(): void;
    brush_move(): void;
    brush_end(): void;
    adjust_rectangle(): void;
    update_mark_selected(extent_x?: any, extent_y?: any): void;
    abstract convert_and_save(extent?: any, item?: any): any;
    brush: d3.BrushBehavior<any>;
    brushing: boolean;
    mark_views: Mark[];
    ignoreBrushEvents: boolean;
}
declare abstract class BrushMixinXSelector extends selector.BaseXSelector {
    brush_render(): void;
    color_change(): void;
    brush_start(): void;
    brush_move(): void;
    brush_end(): void;
    adjust_rectangle(): void;
    update_mark_selected(extent_x?: any, extent_y?: any): void;
    abstract convert_and_save(extent?: any, item?: any): any;
    brush: d3.BrushBehavior<any>;
    brushing: boolean;
    mark_views: Mark[];
    ignoreBrushEvents: boolean;
}
export declare class BrushSelector extends BrushMixinXYSelector {
    render(): Promise<void>;
    create_listeners(): void;
    empty_selection(): void;
    convert_and_save(): void;
    selected_changed(): void;
    relayout(): void;
    private syncModelToBrush;
    adjust_rectangle(): void;
    reset(): void;
    d3el: d3.Selection<SVGGElement, any, any, any>;
}
export declare class BrushIntervalSelector extends BrushMixinXSelector {
    render(): Promise<void>;
    create_listeners(): void;
    empty_selection(): void;
    convert_and_save(): void;
    update_scale_domain(ignore_gui_update: any): void;
    selected_changed(): void;
    relayout(): void;
    private syncModelToBrush;
    reset(): void;
    d3el: d3.Selection<SVGGElement, any, any, any>;
}
export declare class MultiSelector extends BrushMixinXSelector {
    render(): void;
    create_listeners(): void;
    labels_change(model: any, value: any): void;
    create_brush(): void;
    reset_handler(brush_g: any): void;
    get_label(index: any, arr?: any): any;
    multi_brush_move(item: any): void;
    update_text(item: any, extent: any): void;
    multi_brush_end(item: any): void;
    reset(): void;
    convert_and_save(extent: any, item: any): void;
    selected_changed(): void;
    relayout(): void;
    private syncModelToBrush;
    remove(): void;
    brushes: d3.BrushBehavior<any>[];
    brush_g: d3.Selection<SVGGElement, any, any, any>[];
    curr_index: number;
    selecting_brush: boolean;
    names: string[];
}
export {};
