import * as THREE from 'three';
import { PerspectiveCamera, Scene } from 'three';
export type GetClickObjectEventParams = {
    canvas: HTMLCanvasElement;
    camera: PerspectiveCamera;
    scene: Scene;
    isDragging: boolean;
    ignoreTargetName?: string[];
};
export interface IObjectClickService {
    setCanvasClickEvent(canvas: HTMLCanvasElement, callback: (e: MouseEvent) => void): void;
    /**
     * get click object target in scene
     * @param event
     * @param params
     */
    getClickObjectEvent(event: MouseEvent, params: GetClickObjectEventParams): any;
    removeCanvasClickEvent(canvas: HTMLCanvasElement, callback: (e: MouseEvent) => void): void;
}
declare class ObjectClickService implements IObjectClickService {
    #private;
    removeCanvasClickEvent(canvas: HTMLCanvasElement, callback: (e: MouseEvent) => void): void;
    setCanvasClickEvent(canvas: HTMLCanvasElement, callback: (e: MouseEvent) => void): void;
    /**
     * get click object target in scene
     * @param event
     * @param params
     */
    getClickObjectEvent(event: MouseEvent, params: GetClickObjectEventParams): THREE.Object3D<THREE.Event> | null;
}
export default ObjectClickService;
