import { PolyScene } from '../../../PolyScene';
import { ActorsManager } from '../../ActorsManager';
import { Object3D } from 'three';
import { ObjectOptions } from './Common';
export declare class BaseRayObjectIntersectionsController {
    protected actorsManager: ActorsManager;
    protected _scene: PolyScene;
    protected _objects: Object3D[];
    protected _propertiesListByObject: Map<Object3D, ObjectOptions[]>;
    private _intersectsByObject;
    private _closestIntersects;
    private _objectByClosestIntersect;
    private _closestIntersectsSorted;
    private _renderPixelController;
    constructor(actorsManager: ActorsManager);
    objects(target: Object3D[]): void;
    protected _setIntersectedState(objects: Object3D[], intersectedStateByObject: WeakMap<Object3D, boolean>): void;
    private _gpuObjectsPresent;
    private _gpuDepthBufferReadRequired;
    addPropertiesForObject(object: Object3D, properties: ObjectOptions): void;
    removePropertiesForObject(object: Object3D, properties: ObjectOptions): void;
}
