polyv-live-cli
Version:
CLI tool for managing PolyV live streaming services.
61 lines • 1.87 kB
TypeScript
import { MouseEvent } from '../types/interaction';
interface Bounds {
x: number;
y: number;
width: number;
height: number;
}
export declare class MouseHandler {
private state;
private readonly DOUBLE_CLICK_THRESHOLD_MS;
private readonly DOUBLE_CLICK_DISTANCE_THRESHOLD;
private readonly DRAG_THRESHOLD;
static normalizeMouseEvent(rawEvent: any): MouseEvent;
processMouseEvent(event: MouseEvent): {
event: MouseEvent;
isDoubleClick: boolean;
isDragStart: boolean;
isDragMove: boolean;
isDragEnd: boolean;
dragDistance: number | undefined;
};
private handleMouseDown;
private handleMouseUp;
private handleMouseMove;
private handleWheel;
private calculateDistance;
static isPointInBounds(point: {
x: number;
y: number;
}, bounds: Bounds): boolean;
static isMouseEventInBounds(event: MouseEvent, bounds: Bounds): boolean;
static getRelativePosition(point: {
x: number;
y: number;
}, bounds: Bounds): {
x: number;
y: number;
};
isDragging(): boolean;
getCurrentPosition(): {
x: number;
y: number;
};
getPressedButtons(): string[];
isButtonPressed(button: string): boolean;
getDragStart(): {
x: number;
y: number;
} | undefined;
setHover(elementId: string): void;
clearHover(): void;
getHoveredElement(): string | undefined;
reset(): void;
static createBounds(x: number, y: number, width: number, height: number): Bounds;
static expandBounds(bounds: Bounds, margin: number): Bounds;
static boundsIntersect(bounds1: Bounds, bounds2: Bounds): boolean;
static getIntersection(bounds1: Bounds, bounds2: Bounds): Bounds | null;
destroy(): void;
}
export {};
//# sourceMappingURL=mouse-handler.d.ts.map