import * as THREE from 'three'; import { ContextManager, Event, Observable } from '@zcomponent/core'; import { Object3D } from '../../../components/Object3D'; import { Curve3EndHelper } from './Curve3EndHelper'; import { Curve3LineHelper } from './Curve3LineHelper'; import { Curve3 } from '../../../components/curves/Curve3'; interface Curve3HelperProps { node: Curve3; } export declare class Curve3Helper extends Object3D { constructorProps: Curve3HelperProps; element: THREE.Group; edit: Observable; canExtendStart: Observable; canExtendEnd: Observable; canInsert: Observable; editColor: Observable<`#${string}`, never>; color: Observable<`#${string}`, never>; thickness: Observable; editThickness: Observable; protected _onUpdateStructure: Event<[]>; protected _line: Curve3LineHelper; protected _startEndHelper: Curve3EndHelper | undefined; protected _endEndHelper: Curve3EndHelper | undefined; protected _curveVersion: number; protected _pointersEntered: number; constructor(contextManager: ContextManager, constructorProps: Curve3HelperProps); private _updateStructure; protected _updateFrame(): void; createNewPointAtPosition: ((t: number, position: [x: number, y: number, z: number]) => void) | undefined; protected _calculateFactorForWorldPosition(position: THREE.Vector3): number; private _createStartSegment; private _createEndSegment; private _createMiddleSegment; private _proposePoint; dispose(): never; } export {};