import type { Ref } from '@vue/reactivity';
import { Object3D } from 'three';
import { ConvertToStrings } from '../../../../../types/GlobalTypes';
import { BaseRayObjectIntersectionsController } from './_BaseRayObjectIntersectionsController';
import { ObjectOptions, GPUOptions, CPUOptions, PriorityOptions } from './Common';
interface HoveredOptions {
    hoveredStateRef: Ref<boolean>;
    onHoveredStateChange: () => void;
}
export interface ObjectToHoverOptions extends ObjectOptions {
    hover: HoveredOptions;
}
export interface ObjectToHoverOptionsAsString {
    priority: ConvertToStrings<PriorityOptions>;
    cpu?: ConvertToStrings<CPUOptions>;
    gpu?: ConvertToStrings<GPUOptions>;
    hover: ConvertToStrings<HoveredOptions>;
}
export declare class RayObjectIntersectionsHoverController extends BaseRayObjectIntersectionsController {
    protected _propertiesListByObject: Map<Object3D, ObjectToHoverOptions[]>;
    protected _intersectedStateByObject: Map<Object3D, boolean>;
    process(): void;
}
export {};
