1import { Signal } from "./signaling";
2import { Keys } from "./dom";
3import { PlotView } from "../models/plots/plot";
4import { ToolView } from "../models/tools/tool";
5import { RendererView } from "../models/renderers/renderer";
6import type { CanvasView } from "../models/canvas/canvas";
7declare type HammerEvent = {
8    type: string;
9    deltaX: number;
10    deltaY: number;
11    scale: number;
12    rotation: number;
13    srcEvent: TouchEvent | MouseEvent | PointerEvent;
14};
15export declare type ScreenCoord = {
16    sx: number;
17    sy: number;
18};
19export declare type PanEvent = {
20    type: "pan" | "panstart" | "panend";
21    sx: number;
22    sy: number;
23    deltaX: number;
24    deltaY: number;
25    shiftKey: boolean;
26    ctrlKey: boolean;
27};
28export declare type PinchEvent = {
29    type: "pinch" | "pinchstart" | "pinchend";
30    sx: number;
31    sy: number;
32    scale: number;
33    shiftKey: boolean;
34    ctrlKey: boolean;
35};
36export declare type RotateEvent = {
37    type: "rotate" | "rotatestart" | "rotateend";
38    sx: number;
39    sy: number;
40    rotation: number;
41    shiftKey: boolean;
42    ctrlKey: boolean;
43};
44export declare type GestureEvent = PanEvent | PinchEvent | RotateEvent;
45export declare type TapEvent = {
46    type: "tap" | "doubletap" | "press" | "pressup" | "contextmenu";
47    sx: number;
48    sy: number;
49    shiftKey: boolean;
50    ctrlKey: boolean;
51};
52export declare type MoveEvent = {
53    type: "mousemove" | "mouseenter" | "mouseleave";
54    sx: number;
55    sy: number;
56    shiftKey: boolean;
57    ctrlKey: boolean;
58};
59export declare type ScrollEvent = {
60    type: "wheel";
61    sx: number;
62    sy: number;
63    delta: number;
64    shiftKey: boolean;
65    ctrlKey: boolean;
66};
67export declare type UIEvent = GestureEvent | TapEvent | MoveEvent | ScrollEvent;
68export declare type KeyEvent = {
69    type: "keyup" | "keydown";
70    keyCode: Keys;
71};
72export declare type EventType = "pan" | "pinch" | "rotate" | "move" | "tap" | "press" | "pressup" | "scroll";
73export declare type UISignal<E> = Signal<{
74    id: string | null;
75    e: E;
76}, UIEventBus>;
77export declare class UIEventBus implements EventListenerObject {
78    readonly canvas_view: CanvasView;
79    readonly pan_start: UISignal<PanEvent>;
80    readonly pan: UISignal<PanEvent>;
81    readonly pan_end: UISignal<PanEvent>;
82    readonly pinch_start: UISignal<PinchEvent>;
83    readonly pinch: UISignal<PinchEvent>;
84    readonly pinch_end: UISignal<PinchEvent>;
85    readonly rotate_start: UISignal<RotateEvent>;
86    readonly rotate: UISignal<RotateEvent>;
87    readonly rotate_end: UISignal<RotateEvent>;
88    readonly tap: UISignal<TapEvent>;
89    readonly doubletap: UISignal<TapEvent>;
90    readonly press: UISignal<TapEvent>;
91    readonly pressup: UISignal<TapEvent>;
92    readonly move_enter: UISignal<MoveEvent>;
93    readonly move: UISignal<MoveEvent>;
94    readonly move_exit: UISignal<MoveEvent>;
95    readonly scroll: UISignal<ScrollEvent>;
96    readonly keydown: UISignal<KeyEvent>;
97    readonly keyup: UISignal<KeyEvent>;
98    private readonly hammer;
99    private menu;
100    get hit_area(): HTMLElement;
101    constructor(canvas_view: CanvasView);
102    destroy(): void;
103    handleEvent(e: KeyboardEvent): void;
104    protected _configure_hammerjs(): void;
105    register_tool(tool_view: ToolView): void;
106    private _register_tool;
107    protected _hit_test_renderers(plot_view: PlotView, sx: number, sy: number): RendererView | null;
108    set_cursor(cursor?: string): void;
109    protected _hit_test_frame(plot_view: PlotView, sx: number, sy: number): boolean;
110    protected _hit_test_canvas(plot_view: PlotView, sx: number, sy: number): boolean;
111    protected _hit_test_plot(sx: number, sy: number): PlotView | null;
112    protected _prev_move: {
113        sx: number;
114        sy: number;
115        plot_view: PlotView | null;
116    } | null;
117    protected _curr_pan: {
118        plot_view: PlotView;
119    } | null;
120    protected _curr_pinch: {
121        plot_view: PlotView;
122    } | null;
123    protected _curr_rotate: {
124        plot_view: PlotView;
125    } | null;
126    _trigger<E extends UIEvent>(signal: UISignal<E>, e: E, srcEvent: Event): void;
127    __trigger<E extends UIEvent>(plot_view: PlotView, signal: UISignal<E>, e: E, srcEvent: Event): void;
128    trigger<E>(signal: UISignal<E>, e: E, id?: string | null): void;
129    _trigger_bokeh_event(plot_view: PlotView, e: UIEvent): void;
130    _get_sxy(event: TouchEvent | MouseEvent | PointerEvent): ScreenCoord;
131    _pan_event(e: HammerEvent): PanEvent;
132    _pinch_event(e: HammerEvent): PinchEvent;
133    _rotate_event(e: HammerEvent): RotateEvent;
134    _tap_event(e: HammerEvent): TapEvent;
135    _move_event(e: MouseEvent): MoveEvent;
136    _scroll_event(e: WheelEvent): ScrollEvent;
137    _key_event(e: KeyboardEvent): KeyEvent;
138    _pan_start(e: HammerEvent): void;
139    _pan(e: HammerEvent): void;
140    _pan_end(e: HammerEvent): void;
141    _pinch_start(e: HammerEvent): void;
142    _pinch(e: HammerEvent): void;
143    _pinch_end(e: HammerEvent): void;
144    _rotate_start(e: HammerEvent): void;
145    _rotate(e: HammerEvent): void;
146    _rotate_end(e: HammerEvent): void;
147    _tap(e: HammerEvent): void;
148    _doubletap(e: HammerEvent): void;
149    _press(e: HammerEvent): void;
150    _pressup(e: HammerEvent): void;
151    _mouse_enter(e: MouseEvent): void;
152    _mouse_move(e: MouseEvent): void;
153    _mouse_exit(e: MouseEvent): void;
154    _mouse_wheel(e: WheelEvent): void;
155    _context_menu(e: MouseEvent): void;
156    _key_down(e: KeyboardEvent): void;
157    _key_up(e: KeyboardEvent): void;
158}
159export {};
160//# sourceMappingURL=ui_events.d.ts.map