import { type Intersection, Raycaster } from 'three';
type EventNames = 'click' | 'move' | 'pointerenter' | 'pointerleave';
interface RaycastEvent<T extends EventNames> {
    type: T;
    intersections: Intersection[];
}
type Callback<T extends EventNames> = (event: RaycastEvent<T>) => void;
interface MouseRaycasterOptions {
    enabled?: boolean;
}
export declare const useMouseRaycaster: (getOptions?: () => MouseRaycasterOptions) => {
    raycaster: Raycaster;
    onclick: (cb: Callback<"click">) => void;
    onmove: (cb: Callback<"move">) => void;
    onpointerenter: (cb: Callback<"pointerenter">) => void;
    onpointerleave: (cb: Callback<"pointerleave">) => void;
};
export {};
