import * as THREE from 'three'; import { Context, ContextManager, Event } from '@zcomponent/core'; import { ThreeSceneContext } from './scenecontext'; import { ThreePointerPresentEvent } from './pointerevents'; export interface Pointer { onBeforeEventsForIntersections: Event<[event: string, intersections: ThreePointerPresentEvent[]]>; handlePointerPresentEvent(evt: PointerPresentEvent): ThreePointerPresentEvent[]; handlePointerProximityEvent(evt: PointerProximityEvent): ThreePointerPresentEvent[]; handleWheelEvent(evt: WheelPresentEvent): void; handlePointerCancel(): void; dispose(): void; } export interface PointerPresentEvent { event: 'pointerdown' | 'pointermove' | 'pointerup'; rayBySceneContext: Map; movedSincePointerDown: boolean; } export interface PointerProximityEvent { rayBySceneContext: Map; hoverDistance: number; pointerDownDistance: number; pointerUpDistance: number; } export interface PointerAbsentEvent { rayBySceneContext: Map; } export interface WheelPresentEvent { rayBySceneContext: Map; deltaX: number; deltaY: number; deltaZ: number; deltaMode: number; } export interface ContextMenuEvent { rayBySceneContext: Map; } export declare class PointerContext extends Context { onPointerDownMissed: Event<[event: PointerPresentEvent]>; onPointerClickMissed: Event<[event: PointerPresentEvent]>; handleContextMenu(evt: ContextMenuEvent): boolean; registerPointer(pointerId: number): Pointer; } export declare function useOnPointerDownMissed(contextManager: ContextManager): Event<[event: PointerPresentEvent]>; export declare function useOnPointerClickMissed(contextManager: ContextManager): Event<[event: PointerPresentEvent]>;