import { AcDbPolyline, AcGePoint2d, AcGePoint2dLike } from '@mlightcad/data-model';
import { AcApContext } from '../app';
import { AcEdBaseView, AcEdCommand, AcEdPreviewJig } from '../editor';
/**
 * Preview jig that dynamically updates a polyline while the user is acquiring
 * the *next* point.
 *
 * Responsibilities:
 * - Keep the already-confirmed vertices visible.
 * - Add a transient "current" vertex that follows the cursor.
 * - Update the bulge of the last confirmed vertex to preview arc/line changes.
 *
 * Why this jig exists:
 * - Point acquisition needs *live* geometry updates as the cursor moves.
 * - We update the polyline incrementally (add/remove a single temp vertex)
 *   instead of `reset()` to avoid flicker and preserve transient state.
 */
export declare class AcApPolylineJig extends AcEdPreviewJig<AcGePoint2dLike> {
    private _polyline;
    private _points;
    private _bulges;
    private _currentBulge?;
    private _bulgeProvider?;
    private _baseCount;
    private _hasTemp;
    private _appliedBulge?;
    /**
     * Creates a polyline jig.
     *
     * @param view - The associated view
     */
    /**
     * Create a polyline preview jig for point acquisition.
     *
     * @param view - The associated view for transient rendering.
     * @param points - Confirmed polyline vertices.
     * @param bulges - Bulge values aligned with `points`.
     * @param currentBulge - Optional fixed bulge used for the preview segment.
     * @param bulgeProvider - Optional function to compute bulge based on the
     *                        current cursor point.
     */
    constructor(view: AcEdBaseView, points: AcGePoint2d[], bulges: (number | undefined)[], currentBulge?: number, bulgeProvider?: (endPoint: AcGePoint2dLike) => number | undefined);
    /**
     * The transient polyline entity being previewed.
     */
    get entity(): AcDbPolyline;
    /**
     * Update the preview polyline as the cursor moves.
     *
     * This updates:
     * - The bulge of the last confirmed vertex (if needed).
     * - A single temporary vertex representing the current cursor position.
     */
    update(point: AcGePoint2dLike): void;
    /**
     * Seed the preview entity with the confirmed vertices.
     */
    private addBaseVertices;
}
/**
 * Command to create one polyline.
 */
export declare class AcApPolylineCmd extends AcEdCommand {
    constructor();
    private computeBulgeFromCenter;
    private computeCircleCenter;
    private computeBulgeFromThreePoints;
    private computeBulgeFromRadius;
    execute(context: AcApContext): Promise<void>;
}
//# sourceMappingURL=AcApPolylineCmd.d.ts.map