import { Object3D } from 'three';
import { ConvertToStrings } from '../../../../../types/GlobalTypes';
import { BaseRayObjectIntersectionsController } from './_BaseRayObjectIntersectionsController';
import { ObjectOptions, GPUOptions, CPUOptions, PriorityOptions } from './Common';
interface ContextmenuOptions {
    callback: () => void;
}
export interface ObjectToContextmenuOptions extends ObjectOptions {
    contextmenu: ContextmenuOptions;
}
export interface ObjectToContextmenuOptionsAsString {
    priority: ConvertToStrings<PriorityOptions>;
    cpu?: ConvertToStrings<CPUOptions>;
    gpu?: ConvertToStrings<GPUOptions>;
    contextmenu: ConvertToStrings<ContextmenuOptions>;
}
export declare class RayObjectIntersectionsContextmenuController extends BaseRayObjectIntersectionsController {
    protected _propertiesListByObject: Map<Object3D, ObjectToContextmenuOptions[]>;
    protected _intersectedStateByObject: Map<Object3D, boolean>;
    onContextmenu(event: Readonly<PointerEvent | MouseEvent | TouchEvent>): void;
}
export {};
