import type { Types } from '@cornerstonejs/core'; import type { ISpline, SplineProps, ClosestControlPoint, ClosestSplinePoint, ClosestPoint, ControlPointInfo, SplineCurveSegment } from '../../../types'; declare abstract class Spline implements ISpline { private _controlPoints; private _resolution; private _fixedResolution; private _closed; private _invalidated; private _curveSegments; private _aabb; private _length; constructor(props?: SplineProps); protected get controlPoints(): Types.Point2[]; get numControlPoints(): number; get resolution(): number; set resolution(resolution: number); get fixedResolution(): boolean; get closed(): boolean; set closed(closed: boolean); get aabb(): Types.AABB2; get length(): number; get invalidated(): boolean; protected set invalidated(invalidated: boolean); hasTangentPoints(): boolean; addControlPoint(point: Types.Point2): void; addControlPoints(points: Types.Point2[]): void; addControlPointAtU(u: number): ControlPointInfo; deleteControlPointByIndex(index: number): boolean; clearControlPoints(): void; setControlPoints(points: Types.Point2[]): void; updateControlPoint(index: number, newControlPoint: Types.Point2): void; getControlPoints(): Types.Point2[]; getClosestControlPoint(point: Types.Point2): ClosestControlPoint; getClosestControlPointWithinDistance(point: Types.Point2, maxDist: number): ClosestControlPoint; getClosestPoint(point: Types.Point2): ClosestSplinePoint; getClosestPointOnControlPointLines(point: Types.Point2): ClosestPoint; getPolylinePoints(): Types.Point2[]; getPreviewPolylinePoints(controlPointPreview: Types.Point2, closeDistance: number): Types.Point2[]; isPointNearCurve(point: Types.Point2, maxDist: number): boolean; containsPoint(point: Types.Point2): boolean; protected abstract getTransformMatrix(): number[]; protected abstract getSplineCurves(): SplineCurveSegment[]; protected abstract getPreviewCurveSegments(controlPointPreview: Types.Point2, closeSpline: boolean): SplineCurveSegment[]; private _update; private _convertCurveSegmentsToPolyline; private _getCurveSegmmentsDistanceSquaredInfo; private _getCurveSegmmentsWithinDistance; private _getLineSegmentAt; private _getClosingCurveSegmentWithStraightLineSegment; } export { Spline as default, Spline };