import { AcDbSpline, AcGePoint2d, AcGePoint2dLike } from '@mlightcad/data-model';
import { AcApContext } from '../app';
import { AcEdBaseView, AcEdCommand, AcEdPreviewJig } from '../editor';
type AcApSplineMethod = 'fit' | 'cv';
type AcApSplineKnotsType = 'chord' | 'sqrtChord' | 'uniform';
interface AcApSplineSettings {
    method: AcApSplineMethod;
    knotsType: AcApSplineKnotsType;
    degree: number;
}
/**
 * Dynamic preview jig for SPLINE command.
 *
 * Reuses a transient spline entity and rebuilds it on each cursor move.
 */
export declare class AcApSplineJig extends AcEdPreviewJig<AcGePoint2dLike> {
    /**
     * Transient spline entity shown during preview.
     */
    private _spline;
    /**
     * Fixed accepted points collected so far.
     */
    private _points;
    /**
     * Current spline construction settings.
     */
    private _settings;
    /**
     * Whether final spline should be closed.
     */
    private _closed;
    /**
     * Creates a dynamic spline preview jig.
     *
     * @param view - Active editor view.
     * @param points - Accepted points before the dynamic cursor point.
     * @param settings - Current method/degree/knots settings.
     * @param closed - Closed flag used for preview behavior.
     */
    constructor(view: AcEdBaseView, points: AcGePoint2d[], settings: AcApSplineSettings, closed: boolean);
    /**
     * Gets transient spline entity used by this jig.
     */
    get entity(): AcDbSpline;
    /**
     * Rebuilds preview spline by combining fixed points with cursor point.
     *
     * @param point - Current cursor/input point.
     */
    update(point: AcGePoint2dLike): void;
    /**
     * Creates initial spline entity from current settings.
     *
     * @param points - Initial fixed points.
     * @returns New spline entity.
     */
    private createSpline;
    /**
     * Rebuilds existing transient spline without replacing entity instance.
     *
     * @param points - Point list used for rebuild.
     */
    private rebuildSpline;
}
/**
 * Command to create one spline.
 */
export declare class AcApSplineCmd extends AcEdCommand {
    /**
     * Creates SPLINE command instance.
     */
    constructor();
    /**
     * Command entry point.
     *
     * Uses a point-prompt state machine to support Fit/CV workflows, dynamic
     * method switching, undo, close, and option prompts.
     *
     * @param context - Current application/document context.
     */
    execute(context: AcApContext): Promise<void>;
}
export {};
//# sourceMappingURL=AcApSplineCmd.d.ts.map