import type { Five } from '@realsee/five';
import type { BaseController } from './Controllers/BaseController';
import type * as THREE from 'three';
import type { Subscribe } from '@realsee/five';
import DomEvents from '../thirdParty/domevents';
type ControllerClass = new (...params: ConstructorParameters<typeof BaseController<any>>) => any;
declare class ControllerWrapper<HelperControllerInterface extends ControllerClass> {
    helperController?: InstanceType<HelperControllerInterface>;
    private five;
    constructor(five: Five, donEvents: DomEvents, HelperController: HelperControllerInterface, object: THREE.Object3D, helperObject3D: InstanceType<HelperControllerInterface>['helperObject3D'], HelperControllerConfig?: any, hooks?: Subscribe<any>, internalHooks?: Subscribe<any>, helperGroup?: THREE.Object3D);
    dispose(): void;
    private onFiveWantsTapGesture;
    private onFiveWantsGesture;
    private onFiveIntersectionOnModelUpdate;
}
export { ControllerWrapper };
export { ControllerWrapper as FiveControllerWrapper };
