import * as THREE from 'three'; import type { Application } from './Application'; export declare abstract class Helper { protected _type: string; protected _app: Application; protected _helperMap: Map; group: THREE.Group; constructor(type: string); setApp(app: Application): void; abstract onAdded(): Promise; abstract onRemoved(): void; abstract initializeHandler(helperName: string): void; abstract updateHandler(deltaTime: number, helperName: string): void; abstract onDetach(helperName: string): void; protected getHelperObject(helperName: string): T; protected addModelToGroup(helperName: string, model: THREE.Mesh | THREE.Line | THREE.Object3D): void; protected getModelFromGroup(helperName: string): THREE.Object3D; getHelperNameByModel(model: any): any; has(helperName: string): boolean; attach(helperName: string, helperObject: T): void; detach(helperName: string): void; clearHelperObjects(): void; update(deltaTime: number): void; destroy(): void; getSnapshot(): { _t: string; _l: any[]; }; }