import type { Object3D, type Intersection } from 'three';
import type { Ref } from 'vue';
import { type TresContext } from '../useTresContextProvider';
export type Intersects = Intersection<THREE.Object3D<THREE.Event>>[];
interface PointerMoveEventPayload {
    intersects?: Intersects;
    event: PointerEvent;
}
interface PointerClickEventPayload {
    intersects: Intersects;
    event: PointerEvent;
}
export declare const useRaycaster: (objects: Ref<THREE.Object3D[]>, { renderer, camera, raycaster }: Pick<TresContext, 'renderer' | 'camera' | 'raycaster'>) => {
    intersects: import("vue").ComputedRef<Intersects>;
    onClick: (fn: (value: PointerClickEventPayload) => void) => () => void;
    onPointerMove: (fn: (value: PointerMoveEventPayload) => void) => () => void;
};
export {};
