import * as d3 from 'd3'; import { Dict, WidgetModel, WidgetView, DOMWidgetView, ViewList } from '@jupyter-widgets/base'; import { Scale, ScaleModel } from 'bqscales'; import popper from 'popper.js'; import { AxisModel } from './AxisModel'; import { Mark } from './Mark'; import { MarkModel } from './MarkModel'; import { Interaction } from './Interaction'; interface IFigureSize { width: number; height: number; x: number; y: number; } export declare class Figure extends DOMWidgetView { initialize(): void; protected getFigureSize(): IFigureSize; render(): void; protected renderImpl(): Promise; set needsWebGLContext(value: boolean); get needsWebGLContext(): boolean; replace_dummy_nodes(views: Mark[]): void; create_listeners(): void; title_style_updated(): void; background_style_updated(): void; legend_style_updated(): void; legend_text_updated(): void; create_figure_scales(): Promise; padded_range(direction: 'x' | 'y', scale_model: ScaleModel): [number, number]; range(direction: 'x' | 'y'): [number, number]; updateDecorators(print?: boolean): Promise; add_axis(model: AxisModel): Promise; remove_axis(view: any): void; remove_from_padding_dict(dict: any, mark_view: Mark, scale_model: ScaleModel): void; update_padding_dict(dict: any, mark_view: Mark, scale_model: ScaleModel, value: any): void; mark_scales_updated(view: Mark): void; mark_padding_updated(view: Mark): void; update_marks(mark_views: any): void; remove_mark(view: Mark): void; add_mark(model: MarkModel): Promise; update_paddings(): void; relayout(): void; relayoutImpl(): void; update_legend(): void; get_legend_coords(legend_location: 'top' | 'top-right' | 'right' | 'bottom-right' | 'bottom' | 'bottom-left' | 'left', width: number, height: number, disp: number): number[]; set_interaction(model: WidgetModel | null): Promise; update_title(model: any, title: any): void; remove(): any; get_svg(): Promise; get_rendered_canvas(scale: any): Promise; upload_png(model: any, scale: any): Promise; upload_svg(model: any): Promise; save_png(filename: any, scale: any): void; save_svg(filename: string): void; getPixel(x: any, y: any): Promise; change_theme(): void; /** * Generate an integrated toolbar which is shown on mouse over * for this figure. * */ create_toolbar(): d3.Selection; /** * @deprecated since 0.13.0 use extras.webGLRequestRender */ update_gl(): void; get autoLayout(): boolean; get margin(): { top: number; bottom: number; left: number; right: number; }; get plotareaWidth(): number; get plotareaHeight(): number; axis_views: ViewList; bg: d3.Selection; bg_events: d3.Selection; change_layout: () => void; clip_id: string; clip_path: d3.Selection; debouncedRelayout: () => void; debouncedUpdateDecorators: () => void; fig_axes: d3.Selection; fig_marks: d3.Selection; fig_background: d3.Selection; fig: d3.Selection; figure_padding_x: number; figure_padding_y: number; width: number; height: number; offsetX: number; offsetY: number; interaction_view: Interaction; interaction: d3.Selection; mark_views: ViewList; popper_reference: popper.ReferenceObject; popper: popper; scale_x: Scale; scale_y: Scale; svg: d3.Selection; svg_background: d3.Selection; title: d3.Selection; tooltip_div: d3.Selection; toolbar_div: d3.Selection; x_pad_dict: { [id: string]: number; }; xPaddingArr: { [id: string]: number; }; y_pad_dict: { [id: string]: number; }; yPaddingArr: { [id: string]: number; }; intersectObserver: IntersectionObserver; resizeObserver: ResizeObserver; visible: boolean; decorators: { top: any[]; bottom: any[]; left: any[]; right: any[]; }; private rendered; webGLCanvas: HTMLCanvasElement; webGLContext: WebGLRenderingContext | null; private _needsWebGLContext; extras: any; relayoutHooks: Dict<() => void>; renderHooks: Dict<() => void>; private dummyNodes; private relayoutRequested; private should_relayout; } export {};