import { Object3D } from 'three';
import { ConvertToStrings } from '../../../../../types/GlobalTypes';
import { BaseRayObjectIntersectionsController } from './_BaseRayObjectIntersectionsController';
import { ObjectOptions, GPUOptions, CPUOptions, PriorityOptions, ButtonAndModifierOptions, ButtonAndModifierOptionsAsString } from './Common';
interface PointerdownOptions {
    callback: () => void;
}
export interface ObjectToObjectPointerdownOptions extends ObjectOptions {
    pointerdown: PointerdownOptions;
    config: ButtonAndModifierOptions;
}
export interface ObjectToObjectPointerdownOptionsAsString {
    priority: ConvertToStrings<PriorityOptions>;
    cpu?: ConvertToStrings<CPUOptions>;
    gpu?: ConvertToStrings<GPUOptions>;
    pointerdown: ConvertToStrings<PointerdownOptions>;
    config: ButtonAndModifierOptionsAsString;
}
export declare class RayObjectIntersectionsPointerdownController extends BaseRayObjectIntersectionsController {
    protected _propertiesListByObject: Map<Object3D, ObjectToObjectPointerdownOptions[]>;
    protected _intersectedStateByObject: Map<Object3D, boolean>;
    private _objectsMatchingEventConfig;
    onPointerdown(event: Readonly<PointerEvent | MouseEvent | TouchEvent>): void;
}
export {};
