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