import { ScaleLinear } from 'd3-scale'; import type { Renderer } from './rendering'; import { StructRowProxy } from 'apache-arrow'; import { Rectangle } from './tile'; import type { Dataset } from './Dataset'; import type * as DS from './shared'; export default class Zoom { prefs: DS.APICall; svg_element_selection: d3.Selection, any, any>; width: number; height: number; renderers: Map>; tileSet?: Dataset; _timer?: d3.Timer; _scales?: Record>; zoomer?: d3.ZoomBehavior; transform?: d3.ZoomTransform; _start?: number; scatterplot: DS.Plot; constructor(selector: string, prefs: DS.APICall, plot: DS.Plot); attach_tiles(tiles: Dataset): this; attach_renderer(key: string, renderer: Renderer): this; zoom_to(k: number, x: number, y: number, duration?: number): void; html_annotation(points: Array>): void; zoom_to_bbox(corners: Rectangle, duration?: number, buffer?: number): void; initialize_zoom(): void; set_highlit_points(data: StructRowProxy[]): void; set_highlit_point(point: StructRowProxy): void; add_mouseover(): void; current_corners(): Rectangle | undefined; current_center(): number[]; restart_timer(run_at_least?: number): import("d3-timer").Timer; data(dataset: any): this | Dataset; scales(equal_units?: boolean): Record>; webgl_scale(flatten?: boolean): number[]; tick(force?: boolean): void; } export declare function window_transform(x_scale: ScaleLinear, y_scale: ScaleLinear): number[][]; //# sourceMappingURL=interaction.d.ts.map