import { Line, LineLoop, LineSegments, Object3D } from 'three';
import { AHelperWidget } from './AHelperWidget';
import { Line2 } from 'three/examples/jsm/lines/Line2.js';
import { LineSegments2 } from 'three/examples/jsm/lines/LineSegments2.js';
import { MeshLine, MeshLineSegments } from '../../core';
export type LineType1 = (Line | LineLoop | LineSegments);
export type LineType2 = Line2 | LineSegments2 | MeshLine | MeshLineSegments;
export type LineType = LineType1 | LineType2;
/**
 * Visualizes line/curve geometry with small cube handles at vertices or control points.
 * When the line has `geometry.userData.generationParams.curve`, creates interactive
 * draggable handles for editing curve control points.
 * See https://threepipe.org/notes/widgets-and-helpers for the full widget system documentation.
 */
export declare class LineHelper extends AHelperWidget {
    line: LineType;
    private _vertexHandles;
    private _cubeGeometry;
    private _cubeMaterial;
    private _cubeMaterial2;
    handleSize: number;
    editableHandleSize: number;
    handleColor: number;
    editableHandleColor: number;
    autoUpgradeChildren: boolean;
    constructor(line: LineType);
    update(): void;
    private _clearVertexCubes;
    dispose(): void;
    static Check(obj: Object3D): true;
    static Create(obj: Object3D): LineHelper;
}
//# sourceMappingURL=../../src/three/widgets/LineHelper.d.ts.map